什么是最好的ViewModel命名约定?

时间:2010-09-08 13:14:59

标签: c# asp.net asp.net-mvc

我正在编写一个包含大量视图/偏见的asp.net mvc2项目。阅读好的MVC实践,我一直鼓励创建ViewModels。它真的很好,这样做是有意义的,但我最近注意到我不能再容易记住什么样的模型是什么视图。我希望ViewModel有一个很好的命名约定,它可以处理大型项目。

我的问题是这种情况可以改善吗?

5 个答案:

答案 0 :(得分:20)

我喜欢保持简单,例如,如果你有一个名为Folder的对象:

View =“FolderView.xaml”

ViewModel =“FolderViewModel.cs”

答案 1 :(得分:2)

简单说明:

ModelName = ViewName + "Model";

如果您有模型层次结构,有时需要将模型从视图传递到部分视图。在这种情况下,可以放弃上述规则。

答案 2 :(得分:2)

对于ASP.NET MVC,我将视图模型保存在ViewModels.{Controller}命名空间中,类名只是{Action}。我不使用ViewModel后缀,就像视图文件没有View后缀一样。

答案 3 :(得分:1)

如果要将视图模型保存在与视图相同的程序集中,除了一个简单的命名方案(如视图模型类的{View Name} ViewModel)之外,我还用一个技巧来帮助组织视图模型的视图执行以下操作:

  1. 创建视图类(Shell.xaml)
  2. 在同一位置添加您的视图 模型类(ShellViewModel.cs)
  3. 将视图模型类文件重命名为 与视图同名,但是 将.model附加到文件路径 (Shell.model.cs)
  4. 编辑项目文件(或者 手动或使用电源命令 VS)中的扩展
  5. 找到 Compile 元素 项目中的视图模型类 XML文档
  6. 添加子 DependentUpon 元素 其内容是。的名称 查看课程
  7. 保存更改并重新加载项目
  8. 这将导致视图模型类在视图的代码隐藏文件旁边可视化分组。

    alt text

答案 4 :(得分:0)

我已经开始更进一步,并指定是否使用ViewModel通过EditorFor生成表单,方法是使用Form结束名称。有助于保持表格与简单的显示模型易于识别。