7

在 ASP.NET MVC 中,我们需要为所有控制器使用后缀“Controller”。这似乎是不必要的限制 - 是否有技术原因?

我主要只是好奇,但可以看到更灵活的命名规则可以改善代码组织的情况。使用反射来搜索Controller派生类难道不能很容易地发现可能的控制器类吗?或者要求控制器类标有ControllerAttribute?

4

2 回答 2

14

MVC 社区深受Ruby on Rails的影响,它重视“约定优于配置”。通过一致地命名事物,应用程序可以以零配置运行。

于 2008-11-05T18:24:06.563 回答
3

这种约定的好处之一是 URL 段、控制器和模型类都具有相同的名称是很常见的。

URL:/product/ 控制器:产品:控制器型号:产品

这将导致命名冲突。所以我们约定了控制器名称后缀为“Controller”以避免这种冲突。但是,您可以通过我们的可扩展性 API 覆盖此行为。

于 2008-11-06T00:55:10.953 回答