视图中的MVC 3 2模型

Ben*_*son 2 c# asp.net asp.net-mvc-3

我是MVC的新手(即最近几天),我想知道我所做的是最好的方式.

我有一个视图,它是一个插入项表单与特定实体下面的列表详细信息表单的组合.因此我需要2个模型用于页面以避免做类似的事情@Html.LabelFor(model => model.FirstOrDefault().EventTypeID, "Event Type").

我所做的是将模型设置为Tuple<IEnumerable<Event>,Event>我拥有单项和项集合的方式.任何人都可以建议一个不那么hacky替代品或这是最好的方式吗?

dkn*_*ack 5

有两种解决方案.

  • 您应该创建一个不同的View Model Class(一个简单的类,两个模型都作为属性)
  • 您可以将它分配给ViewBag.Model1 ... ViewBag.Model2 ......但这是动态的,因此您将没有智能感知,并且您可以在运行时获得错误.

你应该像这样使用ViewModel

public class ViewModel
{
    public TypeOfYourModel MyModel1 { get; set; }
    public TypeOfYourModel MyModel2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)