簡體   English   中英

ASP.NET MVC Viewmodel麻煩

[英]ASP.NET MVC Viewmodel trouble

我已經開始了類似的話題 ,但仍然沒有找到最終的解決方案...所以我在這里與新的一個:) ...我正在從頭開發NerdDinner,現在我來點我定義DinnerViewModel。
按照這些說明 (從清單5開始),我來到了這個:

namespace Nerd.Controllers
{

    // View Model Classes  

    public class DinnerViewModel
    {
        public DinnerViewModel(List<Dinner> dinners)
        {
            this.Dinners = dinners;
        }

        public List<Dinner> Dinners { get; private set; }

    } 

    public class DinnerController : Controller
    {
        private DinnerRepository dinnerRepository = new DinnerRepository();

        ....

        public ActionResult NewDinners()
        {
            // Create list of products  
            var dinners = new List<Dinner>();
            dinners.Add(new Dinner(/*Something to add*/));

            // Return view  
            return View(new DinnerViewModel(dinners));
        }


    }
}

此外,這個新版本的NerdDinner中的Dinner表有點縮短(它包含DinnerIDTitleEventDateDescription字段)。

無論我在這里添加什么dinners.Add(new Dinner(/*Something to add*/));添加dinners.Add(new Dinner(/*Something to add*/)); 我總是得到以下錯誤

錯誤1'Nerd.Model.Dinner'不包含帶'1'參數的構造函數C:\\ Documents and Settings \\ ilija \\ My Documents \\ Visual Studio 2008 \\ Projects \\ Nerd \\ Nerd \\ Controllers \\ DinnerController.cs 150 25 Nerd

因為我是C#的初學者,一般都是OOP,我不知道該怎么做......我想我需要聲明一個構造函數,但是究竟是怎么做的?

謝謝,

如果要初始化新Dinner對象中的值,請使用此構造

dinners.Add(new Dinner() { Title = "DinnerTitle", Description = "DinnerDescription" });

異常消息說明了一切。 您的Dinner對象沒有帶1個參數的構造函數。 所以你不能這樣做:

new Dinner(someVariable)

因為Dinner類中沒有允許您使用一個參數創建一個晚餐對象的方法。

如果您一直在關注書呆子晚餐“教程”,您可能已經使用了Linq2Sql,默認生成的代碼使用無參數構造函數定義Dineer(方法稱為'Dinner()')。

相反,您可以使用屬性來設置對象的值:

Dinner dinner = new Dinner;
dinner.Title = "My dinner";
dinner.Description ="...";
// etc.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM