C# 如何命名ViewModel类?
什么样的命名约定适合ViewModel类 示例:对于HomeController,索引视图?HomeIndexViewModel似乎不正确。员工视图数据 这就是我使用的,也是我在示例应用程序中看到的 关于您添加的示例:Imho类的名称应该指定它包含的数据类型。“…索引数据”是毫无意义的。那页上到底显示了什么?尝试用1或2个单词对其进行总结,并在其后面添加“ViewData”C# 如何命名ViewModel类?,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,什么样的命名约定适合ViewModel类 示例:对于HomeController,索引视图?HomeIndexViewModel似乎不正确。员工视图数据 这就是我使用的,也是我在示例应用程序中看到的 关于您添加的示例:Imho类的名称应该指定它包含的数据类型。“…索引数据”是毫无意义的。那页上到底显示了什么?尝试用1或2个单词对其进行总结,并在其后面添加“ViewData” 或者只需获取控制器的名称并删除“索引”。HomeViewData听起来不错。我更喜欢HomeViewModel,或者使用前
或者只需获取控制器的名称并删除“索引”。HomeViewData听起来不错。我更喜欢HomeViewModel,或者使用前面的员工示例,CreateEmployeeViewModel、EditEmployeeViewModel等。其想法是“ViewModel”强调了我们正在处理演示问题的事实,并消除ViewModels与您可能拥有的任何域模型对象之间的歧义。我试图使我的表示模型名称与它们将显示的表示类型无关。最初我可能会将模型对象用于ASP.NET视图,但稍后我也可能会在WCF或WinForms应用程序中使用它。我试着给我的模型命名,以便它们逻辑地描述它们所包含的内容,而不会用“ViewData”、“ViewModel”、“Model”等来混淆它们 示例:
ProductsWithPageInfo
ProductWithAttributesAndTags
ClientAndBillingDetail
UserAccountWithAssociatedGroups
等等。我一直在使用术语信封作为我名字的一部分,在我阅读Wrox书的第1章之前不久,我就开始使用它,并发现更普遍接受的术语是ViewModel 然而,当我有两个或更多(通常是不相关的)强类型模型要交给视图时,我创建的这些ViewEnvelopes仅用于非常简单的封装。它们不包含任何其他功能——信封仅在这个意义上作为交付机制,而ViewModel这个术语对我来说,似乎对我如何使用它没有太多描述,也可能对它的真正用途更加模糊
例如,我可以创建一个CustomerUpdateEnvelope类,该类的存在仅仅是为了将一个Customer对象和一个无关的NewsTicker对象传递给我的Customer Update视图 我使用以下模式是因为它清晰明了:
- 型号:Foo
- 视图:FooView
- ViewModel:FooViewModel