我正在使用 ViewModel 方法构建一个 ASP.Net MVC 应用程序,以使我的域实体与我的 UI 使用的“模型”分开。我使用以下约定来命名我的 ViewModel 类。ViewModelName = ViewName + "ViewModel"。例如:
Index + ViewModel = IndexViewModel
到目前为止,一切都很好,这是一个相当普遍的模式,在 StackOverflow 和其他地方有很多关于这个主题的指导。我的问题涉及我的 ViewModels 使用的子对象。如果我的 ViewModel 需要一个属性与我的域模型对象相同的类,我只需将域模型包含在我的 ViewModel 中。例如:
public class PersonViewModel
{
public int PersonID { get; set; }
public Address Address { get; set; }
public string SomeOtherProperty { get; set; }
}
但是,当我需要一个与我的域模型具有不同属性的子对象时,我不确定使用什么命名约定。例如,如果除了 Address 域模型中的内容之外,Address 还需要一些其他属性,我应该怎么称呼它?我认为 AddressViewModel 像这样:
public class PersonViewModel
{
public int PersonID { get; set; }
public AddressViewModel Address { get; set; }
public string SomeOtherProperty { get; set; }
}
但这对我来说感觉不对。我的直觉是 ViewModel 后缀应该只用于顶级 ViewModel。
我正在寻找其他开发人员关于他们在这种情况下使用哪些命名约定的建议,特别是在这种情况下您会如何称呼子对象?