【问题标题】:ASP.NET MVC ConventionsASP.NET MVC 约定
【发布时间】:2010-02-23 15:45:17
【问题描述】:

ASP.NET MVC 高度基于约定,正如他们所说的“约定优于配置”。因此,这意味着赋予事物的名称内容以及创建它们的项目结构中的位置非常重要。

作为 ASP.NET MVC 的新手,我很欣赏这种方法的强大功能和简单性,但我确实发现跟踪正在使用的约定有点令人困惑。例如,当使用 UpdateModel 控制器方法时,它依赖于与模型类的属性具有相同名称的 HTML 表单字段。这是显而易见的事情,大多数时候这可能是大多数人本能地会做的事情,但我可以看到,如果一个人在一个地方重命名某个东西而忘记在另一个地方重命名它,那会变得非常混乱。链接有点“脆弱”。

因此,我认为将所有 ASP.NET MVC 约定的列表放在一个地方作为最佳实践的简短陈述会很有用。比如:

“HTML 表单字段应与模型属性同名”。

有人有类似的吗?你能帮我在这里创建一个列表吗?

【问题讨论】:

  • 真的没有那么多“约定”。其中许多可以被覆盖。

标签: asp.net-mvc conventions


【解决方案1】:

使用部署服务器中的虚拟路径并将其输入到 Visual Studio 的项目配置中。这样,Visual Studio 开发服务器将使用与部署服务器相同的路径结构。这将在部署时为您节省无数小时的工作。

【讨论】:

    【解决方案2】:

    控制器应始终以 Controller 后缀结尾。

    【讨论】:

      【解决方案3】:

      请注意,约定优于配置不是必需的,而是开箱即用的工作方式。如果您发现约定令人困惑或没有帮助,您可以更改它(例如,如何选择控制器、如何定位视图等),或进行配置。

      【讨论】:

      • 好点!我已经看到了一些例子,但作为一个学习者,我想在覆盖它们之前完全理解开箱即用的约定。我需要进入微软的思维模式。
      【解决方案4】:

      在路由中指定的控制器和动作名称应该有相应的类和动作方法以这种方式命名(加上控制器的“-Controller”后缀)。您可以使用 [ControllerName] 和 [ActionName] 属性覆盖此行为。

      【讨论】:

      • 第一点不是约定,而只是关于如何实现 Html 助手的细节。认为它可能有用。
      猜你喜欢
      • 2013-03-10
      • 1970-01-01
      • 2016-03-17
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      相关资源
      最近更新 更多