[英]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
表有點縮短(它包含DinnerID
, Title
, EventDate
和Description
字段)。
無論我在這里添加什么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.