MVC控制器设计

时间:2011-06-21 06:22:17

标签: asp.net-mvc asp.net-mvc-3

我正在开发MVC项目,在管理员方面,我必须为ProductsCategorySubCategory创建CRUD表单。

以下哪种方法会更好:

  1. 创建一个AdminController并为产品,类别,子类别提供CRUD操作方法。
  2. 为具有单独CRUD操作方法的产品,类别,子类别创建单独的控制器?
  3. 感谢您的帮助

4 个答案:

答案 0 :(得分:3)

正如其他人所说,最好有单独的控制器。我建议将它们放在管理区域中,这样你就可以将功能与主站点“分开”。

答案 1 :(得分:0)

最好让控制器保持尽可能轻,这样我就可以为每个控制器分别设置控制器。您可能希望查看MVC Controller Scaffolding功能,该功能现在可以在MVC 3工具更新中更轻松地使用。它非常适合这种“基本”CRUD工作。

答案 2 :(得分:0)

我会选择在产品控制器等中使用产品的所有功能,主要是因为Single responsibility principle

在MVC3中,如果使用添加控制器向导,则可以使用CRUD方法/屏幕自动生成控制器。

示例:http://msdn.microsoft.com/en-us/data/gg685467

imo控制器应该只是一个薄层,与正在处理所有业务逻辑的业务服务层进行通信。例如,您可以创建可以处理业务逻辑的ProductService的产品。

答案 3 :(得分:0)

通常,关注REST principles是件好事。

这个想法非常简单 - 每个“资源”都应映射到控制器(方法#2)。

然而,我认为“切割天然关节”会更好 我的意思是 - 有时为了它而分解(分成更多的控制器)会导致不必要的复杂性。控制器应根据您的用例显示。

从一个(看起来最重要)开始,然后在当前一个超过~100 loc时切片。