2011-06-21 39 views
2

我正在MVC项目和管理员端我必须为Products,Category,SubCategory创建CRUD表单。MVC控制器设计

哪种这些做法会更好:

  1. 创建一个AdminController并有产品,类别,子类别CRUD操作方法。
  2. 为具有单独的CRUD操作方法的产品,类别,子类别创建单独的控制器?

感谢您的帮助

+0

选项2将是最好的,因为你知道哪个控制器用于什么目的(在你的情况下,CRUD) –

回答

0

它总是最好把你的控制器尽可能轻,所以我会去为每个单独的控制器。您可能想看看现在更容易在MVC 3工具更新中使用的MVC Controller Scaffolding功能。它非常适合这种“基本”CRUD工作。

0

我会选择在产品控制等具有产品的每一个功能,主要是因为Single responsibility principle

在MVC3可以自动生成CRUD方法的控制器/屏幕,如果你使用外接控制器向导。

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

IMO控制器应该只是薄薄的一层说话谁是处理所有的业务逻辑的业务服务层。例如,您可以创建一个ProductService来处理业务逻辑的产品。

3

正如其他人所说,最好有独立的控制器。我会建议将它们放在管理区域中,以便将功能从主站点“分离”。

0

通常,遵循REST principles是件好事。

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

但是,我认为最好“沿天然关节切开”。
我的意思是 - 有时为了分解(分成更多控制器)会导致不必要的复杂性。控制器应该相应地出现在你的用例中。

从一个开始(显得最重要),当当前超过~100位置时切片。