ASP.NET MVC:组织 ViewModel 的约定
-
21-09-2019 - |
题
正如各种 MVC 中所讨论的 问题 和 博文, ,我们知道 ASP.NET MVC 项目布局非常注重约定。
我盲目地在其中创建了一个子目录 Controllers
文件夹。
这感觉不对。
替代文本 http://www.imagechicken.com/uploads/1252003002097179400.png
问题: 关于存储 ViewModel 的目录的常见约定是什么?什么是 你的 建议或既定惯例是什么?
解决方案
我 思考 这个想法是(视图)模型应该位于模型目录中(当您创建新的 ASP.NET MVC 项目时该目录为空)。
就我个人而言,对我来说,围绕功能而不是机制安排命名空间更有意义,但是虽然这对于模型来说没有什么影响,但对于控制器和视图来说,它会产生一些影响。
其他提示
我在控制器和视图旁边使用“模型”文件夹。您的项目中是空的(我不使用区域)。
“MVC”模型中的“M”位于单独的程序集中。Web 装配中的唯一模型是演示/编辑模型。
在 Models 文件夹内,像往常一样按名称空间划分了子文件夹。所以我有:
Vertex.Data(与存储库组装等)
顶点网
Controllers BarController FooController Models Bar BarListItem Foo FooDetail FooListItem Views Bar Foo Shared
...ETC。
我通常为每个视图创建一个模型。即使它只是我可以使用的项目中其他某个对象的精确地图。这样我的视图及其所需的模型就与应用程序的其余部分解耦了。通过扩展视图的模型,将来向视图添加数据也变得非常容易。
预先需要做更多的工作,有时看起来像是重复的对象,但我只是更喜欢分离。
我将所有视图模型存储在 MVC 项目中创建的 models 目录中。这些“模型”与我的观点一一对应。如果视图模型不仅仅是基本数据持有者,我会使用 Models 文件夹中的子文件夹。子文件夹将包含表示该视图所需的所有内容。
不隶属于 StackOverflow