我有MVC管理屏幕,用于创建/删除/编辑和列出数据。现在我为每个模型类都有很多viewModels(编辑/删除等)。例如:
public class cityViewModel () {
public City City { get; set; }
}
public class buildingViewModel () {
public Building Building { get; set; }
}
我想知道的是,将这些viewModel合并为一个并使用这个通用模型会更好。类似的东西:
public class adminViewModel () {
public City City { get; set; }
public Building Building { get; set; }
}
答案 0 :(得分:0)
asp.net-mvc的创建者没有关于何时以及如何使用ViewModel的官方指南。但是从实际经验来看,应该为单视图创建单视图模型,1:1。开始时,对所有内容使用单一视图模型似乎更简单,但随着更多数据和字段出现在视图模型上,您可能会发现自己在模型绑定时显式排除属性,在呈现视图时复杂if
,因此,仅在视图模型中包含其视图所需的字段。
另外,请查看Jimmy Bogard的How we do MVC – View models
答案 1 :(得分:0)
那应该没问题。通过组合多个局部视图页面,人们可以安静地创建View页面。每个部分视图页面负责显示特定的Model对象。在这种情况下,与您一样,人们将模型对象分解为单独的小模型实体,并通过组合这些小实体来创建合并的模型对象。回到视图中,他们将这些小模型实体中的每一个与相应的部分视图相关联。例如,
public class cityViewModel () {
public City City { get; set; }
}
public class buildingViewModel () {
public Building Building { get; set; }
}
public class adminViewModel () {
public City City { get; set; }
public Building Building { get; set; }
}
然后在主视图页面中:
<% Html.RenderPartial(<View Name>,Model.City) %>