【问题标题】:Do any naming conventions exist for ASP .NET MVC 3?ASP .NET MVC 3 是否存在任何命名约定?
【发布时间】:2011-02-10 12:40:17
【问题描述】:
当我学习 MVC 3 时,很明显命名对于让 Dbase-Model-Controller-Views 一起交流至关重要。
是否已经存在应该在 MVC 应用程序中使用的命名约定列表?
类似:
- 表名(复数)
- 模型名称(表名称的单数形式)
- 视图文件夹必须与控制器类同名(即 Contract -> 派生自 ContractController)
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-3
naming-conventions
【解决方案1】:
唯一的主要约定是控制器类名必须以“Controller”结尾。任何其他约定都只是代表最佳实践,并不是您的应用程序运行所必需的。
您提到的表格和模型命名约定之所以存在,是因为它们使代码“可读”得更好(Select * From products where category = 1;Products.Insert(new Product()))
MVC 自动查找与操作方法名称匹配的视图,并开始查找与控制器同名的文件夹。但是,您可以通过在视图结果中指定视图名称来轻松胜过这一点 (return View("MyCustomName"))
【解决方案2】:
没有多少命名约定会破坏您的应用程序,除了少数让您的控制器以“Controller”结尾和从动作名称调用“View()”的名称推断之外。
MVC 是基于约定优于配置的思想,所以我慢慢发现,有很多约定可以遵循,但我还没有遇到过一个列表。它们很微妙而且非常方便……通常。