【问题标题】:What is the best ViewModel naming convention? [duplicate]最好的 ViewModel 命名约定是什么? [复制]
【发布时间】:2010-09-08 13:14:58
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

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

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

这将导致视图模型类与视图的代码隐藏文件一起在视觉上分组。

【讨论】:

  • 这看起来很有趣,但我不确定它是否被认为是好的做法。我很想听听其他人对此的看法。
  • 它对于使用视图直观地组织视图模型很有用,就像代码隐藏链接到视图的方式一样。我认为关于是否应该将视图模型与视图分开的类库中的最佳实践开始发挥作用,这取决于您的重用和测试场景。在某些项目中,我将视图模型放在另一个库中,但在更简单的项目中,将它们与视图放在相同的项目中。
  • 这很有趣,但它不适合视图模型可以被多个视图使用的事实。此外,分组文件通常是部分类,视图模型不能也不应该是。
【解决方案2】:

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

View = "FolderView.xaml"

ViewModel = "FolderViewModel.cs"

【讨论】:

    【解决方案3】:

    简单点:

    ModelName = ViewName + "Model";
    

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-06
          • 1970-01-01
          • 2018-04-15
          • 2016-07-06
          • 1970-01-01
          • 2011-08-20
          • 2012-11-09
          • 2011-10-06
          相关资源
          最近更新 更多