我正在寻找关于ViewModel定义的两种不同方法的一些意见
我有公司课
public class Company
{
public string Name { get; set; }
public int CountryID { get; set; }
}
对于“创建”和“编辑”视图,我需要一个国家/地区列表来填充DropDownList以进行CountryID选择。我可以看到如何构建ViewModel的两个广泛选择,详见下文。
嵌套ViewModel
public class CompanyCreateEditViewModel
{
public Company Company { get; set; }
public IEnumerable<Country> Countries{ get; set; }
....
}
平面ViewModel
public class CompanyCreateEditViewModel
{
public string Name { get; set; }
public int CountryID { get; set; }
public IEnumerable<Country> Countries{ get; set; }
....
}
目前我赞成使用嵌套方法,因为它可以让我免于第二次定义字段,但我想把它放在更好的方法和评论上。
由于
答案 0 :(得分:24)
我个人更喜欢使用嵌套方法进行演示,因为当您使用局部视图时,它会导致更合理的设计。您可能在知道如何呈现CompanyPartialView
的整个应用程序中使用了Company
,因此将Company
公开为嵌套结构非常有意义。
另一方面,对于数据 entry ,最简单的ViewModel类是最容易使用的。你只有一堆表单字段都映射到各个属性。因此,我的策略通常是将它们展平为数据输入页面并将它们嵌套在演示文稿/报告页面中。
答案 1 :(得分:5)
我更喜欢嵌套,原因如下:
恕我直言,HTH。