请考虑以下代码段
public class FirstViewModel
{
public IEnumerable<SelectListItem> GetSomeData()
{
//query dbcontext here
}
}
public class SecondViewModel
{
public Employee Employee { get; set; }
public Stock Stock { get; set; }
//more properties
}
因此,在第一个代码段中,我可以在我的代码中执行以下操作:
@Html.DropDownListFor(model => Model.Employee, new App.Models.ViewModels.FirstViewModel().GetSomeData(), "Please choose something")
在我可以做的第二个片段中:
@Html.DropDownListFor(model => Model.Employee, new SelectList(Model.Employee), "Select Status")
我想要实现的是在一个视图中为我的MVC应用程序提供多个模型。我的问题是,为每个或一个大视图模型提供一个单独的视图模型会更好,它会引用所有其他模型。我对MVC很新,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
我的每个视图都有一个ViewModel - 可能是两个虚拟机的聚合(作为属性)。重要的是要记住VM是视图的模型 - 它本身不是数据模型。数据模型应该在其他地方,并且Controller在两者之间进行映射。
(我以前从来没有ViewModel主动从数据库中提取数据 - 我总是让Controller填充ViewModel。与你的问题没有直接关系,但从一开始就朝着正确的方向发展很重要。)
答案 1 :(得分:0)
我会以使用为基础。如果您一直需要所有数据,为什么不包括所有数据。
需要考虑的其他事项: