我已经开始使用类似的topic,但仍然没有找到最终的解决方案...
所以在这里,我有了一个新的:) ...我正在从头开始开发NerdDinner,现在我要指出的是定义DinnerViewModel的位置。
these instructions之后(从清单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*/));,我总是会收到以下错误


  错误1'Nerd.Model.Dinner'没有
  包含采用“ 1”的构造函数
  参数C:\ Documents和
  设置\ ilija \我的文档\视觉
  工作室
  2008 \ Projects \ Nerd \ Nerd \ Controllers \ DinnerController.cs 150 25书呆子


因为我是C#和OOP的初学者,所以我不知道该怎么做...我想我需要声明一个构造函数,但是具体如何以及在哪里声明?

谢谢,
伊莱

最佳答案

如果要在新的Dinner对象中初始化值,请使用此构造

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

关于c# - ASP.NET MVC Viewmodel的麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2488672/

10-13 07:41