【发布时间】:2009-07-14 23:17:30
【问题描述】:
应该如何拆分 ASP.NET MVC 站点中的控制器?例如,默认项目有一个 HomeController 和一个 AccountController。网站的每个部分是否应该有一个控制器,或者其他什么?
我正在学习如何使用 MVC 框架,如有任何帮助,将不胜感激。
【问题讨论】:
标签: asp.net asp.net-mvc design-patterns
应该如何拆分 ASP.NET MVC 站点中的控制器?例如,默认项目有一个 HomeController 和一个 AccountController。网站的每个部分是否应该有一个控制器,或者其他什么?
我正在学习如何使用 MVC 框架,如有任何帮助,将不胜感激。
【问题讨论】:
标签: asp.net asp.net-mvc design-patterns
我认为这也取决于您的网站的规模。控制器的逻辑名称是最重要的部分,使您的源易于导航非常重要。
一般来说,如果您不确定,尤其是在处理支持它的数据模型时,我认为最好从 CRUD 书中学习一下。对于特定模块(例如产品),您将有一个控制器负责创建、读取、更新和删除(以及用于查看的索引)。
如果您的站点不那么 CRUDDY(可能像 Stack Overflow),那么将控制器分成逻辑区域(例如“PostController”、“SearchController”等)可能会更有用,但它确实取决于在您的网站及其架构上。
抱歉,我帮不上忙,在大多数情况下,最好还是边做边学。如果您是新手,请根据您看到的建议和示例采用您认为最好的方法。关于 .NET 和 ASP.NET MVC 的一个很好的想法是,以后重构非常容易。
【讨论】:
执行此操作的传统方法是拆分控制器,就像拆分视图一样。示例:
/Views/Home 有索引、注册和联系人视图,然后你就会有一个 HomeController
/Views/Product 有 Show 和 List 视图,那么你就有了 ProductController
最简单的方法是 Views 文件夹中的每个文件夹使用 1 个控制器。
【讨论】:
对于何时制作新的控制器并没有这样的具体规则。 如果你觉得它会控制网站的不同部分,你可以制作一个新的控制器。
基本上通过拥有多个控制器,可以在逻辑上将网站划分为不同的部分。
【讨论】: