我是MVC的新手(即最近几天),我想知道我所做的是最好的方式。
我有一个视图,它是一个插入项表单与特定实体下面的列表详细信息表单的组合。因此,我需要2个模型用于页面,以避免执行@Html.LabelFor(model => model.FirstOrDefault().EventTypeID, "Event Type")
。
我所做的是将模型设置为Tuple<IEnumerable<Event>,Event>
,这样我既有单项也有项目集合。任何人都可以提出一个不太常见的替代方案,或者这是最好的方法吗?
答案 0 :(得分:5)
有两种解决方案。
您应该使用像这样的ViewModel
public class ViewModel
{
public TypeOfYourModel MyModel1 { get; set; }
public TypeOfYourModel MyModel2 { get; set; }
}
答案 1 :(得分:1)
我建议您创建一个包含您想要传递的对象的ViewModel。
public class NewEventViewModel
{
public Event NewEvent { get; set; }
public Event EventDetails { get; set; }
}
你也可以使用ViewBag
,但它没有强类型,因此你不会获得IntelliSense。
答案 2 :(得分:0)
我会为视图创建一个Model对象,有2个属性,一个用于单个实体,一个用于集合,然后您可以将此组合对象作为视图模型传递