- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 ASP.NET MVC 中, Controller 存在于名为 Controllers 的文件夹中。他们的名字必须以Controller
结尾否则事情就行不通了(您会收到 HTTP 404 错误)。
但是,模型名称不必以 Model
结尾和 View 名称不必以 View
结尾.
这似乎不一致......为什么(从 MVC 或设计的角度) Controller 名称必须结束 Controller
?
其他MVC框架有这个要求吗?
编辑
由于这似乎是惯例,我不主张反对它(参见 Convention over Configuration !),但我想了解其背后的原因。
最佳答案
Controller 约定是这样路由可以轻松找到 Controller 而无需额外配置。添加所需的 Controller 结尾可以降低您通过 MVC 路由意外暴露对象的可能性。
View 也有一个内置的约定。默认情况下, View 应位于以您的 Controller 命名的文件夹中,并与调用它们的操作命名相同,这使您的操作中的方法调用 View() 无需指定 View 即可工作。我经常发现自己无论如何都要指定 View ,但是如果您正在寻找一种约定,这绝对是框架鼓励的约定。
从模型的角度来看,您是对的,没有标准约定。这样做的原因是因为 ASP.NET MVC 框架从不直接接触模型。它需要一个约定让 Controller 从路由中找到它们,它需要一个约定让 View 从 Controller 中找到它们……但是模型只能从 Controller 中的逻辑访问,因此框架不需要知道它们.
话虽如此,我已经看到大多数人构建他们的模型,就像他们在 MVC 之前构建他们的实体或域模型一样。如果您使用的是事件记录模式,则将模型命名为与它们映射到的表相对应,如果您更关注域,则将模型命名为与它们正在建模的域的部分相对应。此外,我看到越来越多的人创建了一组 View 模型,这些模型仅用于向 UI 呈现数据,并且是通过从域中的各种模型中提取部分来创建的。模型绝对是 ASP.NET MVC 中最不自以为是的部分,但这对 imo 来说是一件好事,因为人们在这个领域有非常不同的工作方式。
关于asp.net-mvc - 命名约定 - Controller 的一项规则,模型和 View 没有规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/759617/
假设我有一个函数,例如 f(x,y)但y参数是可选的。设置y的首选方式是什么?作为可选参数?对我有用的一种选择: function f(x, y=nothing) # do stuff
在学习核心动画时,我很快就了解到,如果你做得不对,你会得到非常奇怪的未定义行为。为此,我有几个问题可以帮助我从概念上更好地理解它。 我的 NSView 子类在其 init.h 中声明以下内容:该 Vi
我一直在尝试学习 ClojureScript,并偶然发现了一些非常神秘的函数名称。 例如: (.-length str) 来自 om 文档: (defn add-contact [data owner
我对此很好奇。我最近想到使用大括号来隔离代码段,以进行可视化组织,并将变量隔离到特定范围(如果只是为了防止它们在较大的函数中混淆 Eclipse 中的建议)。例如: public void start
所以我进行了一些搜索,但在 Google 或 PEP 上找不到任何讨论此问题的内容。 我正在使用 tkinter 做一个项目,我有一个文件,它是项目的一部分,只有 200 行代码(不包括所有注释掉的代
根据某种不成文的约定,所有 API key 都是十六进制数字吗? 最佳答案 对一些半随机数据(例如时间戳 + 用户 ID + key )进行 md5 哈希是一种快速生成难以猜测的固定长度 key 的方
在 C 中,如果编译器想要提供实现定义的标识符(语言扩展、内在函数、伪函数和伪宏,基本上任何不是语言标准保留关键字但也不是常规函数的东西)惯例是名称以下划线为前缀;据了解,代码不应出于正常目的使用此类
Java Bean 的约定之一是: setter 的返回类型必须是 void。 或者至少大多数人是这么说的。我的问题是:它真的必须无效吗?我喜欢返回 "this" 而不是 "void" 因为我可以像这
我对 Java 编码风格有疑问。 我编码: public class Pattern { public Pattern(...) { ... } public static List
我有一个关于 Java servlet 约定的问题。在查看 servlet 的任何教程时,无论是 Eclipse、NetBeans 等,它们总是让您创建一个 index.jsp 页面。创建页面后,他们
在 python 中,当变量名与保留字冲突时(如 class、in、default 等),PEP8约定规定应使用尾随下划线(class_、in_、default_)。 对于相同的情况,共享最多的 ja
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 5 年前。 Improve
Java 存储预定义字符串集的主要约定是什么?现在我有一个包含我使用的所有字符串的类,但感觉确实有更好的方法来做到这一点。 这就是我在 my_strings.java 类中所做的 public fin
我经常需要检索结果并按给定列访问它们。 有没有一种方法可以不用每次都遍历整个数据集来编写它? 我研究了各种 PDO 获取模式,但没有发现比这更简单的模式。谢谢。 function get_groups
所以我正在制作这个 android 应用程序,它需要从用户提供的 CSV 文件中读取数据。 CSV 文件在台式电脑上编辑起来更舒服,所以我在应用程序中没有编辑器,它是“只读”的;我假设手机的 SD 卡
我正在编写一个文件,该文件是 npycurses module 的子类 npycurses.ActionFormV2 ,我正在覆盖 beforeEditing method ,所以当我整理我的文件时,
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我正在开发一个可在 iPhone、iPad 和其他移动设备上运行的网页。我很好奇是否有关于移动设备 CSS 最佳实践的资源。 我试过搜索,但想出了随机网站 with tidbits of inform
我发现开始编程时最大的挑战之一是掌握文件路径。例如,当您引用目录结构中同一级别的文件夹中的路径时,您将看到: /folder/style.css 或 文件夹/style.css等 当您引用不同的文件时
如果我有如下函数: def foo(): return 1, 2 我通常会这样调用函数: g, f = foo() 但是,如果我从不打算使用返回的第二个值,是否有一种调用函数的方法可以明确说明
我是一名优秀的程序员,十分优秀!