拆分ASP.NET MVC控制器

时间:2009-07-14 23:17:30

标签: asp.net asp.net-mvc design-patterns

如何拆分ASP.NET MVC站点中的控制器?例如,默认项目有一个HomeController和一个AccountController。网站的每个部分应该有一个控制器,还是其他什么?

我正在学习如何使用MVC框架,任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:1)

我认为这取决于您网站的规模。拥有控制器的逻辑名称是最重要的部分,使您的源易于导航非常重要。

一般来说,如果你不确定,特别是如果你正在处理一个支持它的数据模型,我认为最好从CRUD书中删除一些内容。对于特定模块(比如Products),您将拥有一个负责创建,读取,更新和删除(以及查看索引)的控制器。

如果你的站点不那么CRUDDY(可能像Stack Overflow那样),那么将控制器分成逻辑区域(比如“PostController”,“SearchController”等)可能会更有用,但它确实取决于在您的网站上,它的架构。

抱歉,我无法提供更多帮助,在大多数情况下,最好还是通过干活来学习。如果您是新手,请根据您所看到的建议和示例采用您认为最佳的方法。关于.NET和ASP.NET MVC的一个好的想法是后来的重构很容易。

答案 1 :(得分:0)

传统的做法是以与分割视图相同的方式拆分控制器。例如:

/ Views / Home有索引,注册和联系人视图,那么你有一个HomeController

/ Views / Product有Show和List视图,那么你有一个ProductController

最简单的方法是在Views文件夹中为每个文件夹设置1个控制器。

答案 2 :(得分:0)

关于何时制作新控制器,没有具体规则。 如果你觉得它可以控制网站的不同部分,你可以制作一个新的控制器。

基本上,通过拥有许多控制器,可以将网站逻辑划分为不同的部分。