在 ASP.NET MVC 中,我们需要为所有控制器使用后缀“Controller”。这似乎是不必要的限制 - 是否有技术原因?
我主要只是好奇,但可以看到更灵活的命名规则可以改善代码组织的情况。使用反射来搜索Controller
派生类难道不能很容易地发现可能的控制器类吗?或者要求控制器类标有ControllerAttribute
?
在 ASP.NET MVC 中,我们需要为所有控制器使用后缀“Controller”。这似乎是不必要的限制 - 是否有技术原因?
我主要只是好奇,但可以看到更灵活的命名规则可以改善代码组织的情况。使用反射来搜索Controller
派生类难道不能很容易地发现可能的控制器类吗?或者要求控制器类标有ControllerAttribute
?
MVC 社区深受Ruby on Rails的影响,它重视“约定优于配置”。通过一致地命名事物,应用程序可以以零配置运行。
这种约定的好处之一是 URL 段、控制器和模型类都具有相同的名称是很常见的。
URL:/product/ 控制器:产品:控制器型号:产品
这将导致命名冲突。所以我们约定了控制器名称后缀为“Controller”以避免这种冲突。但是,您可以通过我们的可扩展性 API 覆盖此行为。