首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更好的办法是在MVC中拥有巨大的控制器,或者多个控制器?

更好的办法是在MVC中拥有巨大的控制器,或者多个控制器?
EN

Stack Overflow用户
提问于 2009-07-29 03:25:45
回答 7查看 27.4K关注 0票数 76

我们正在用ASP.NET MVC构建一个相当大的HR应用程序,到目前为止,我们的控制器正在变得相当大。例如,我们有一个员工控制器,并且包括所有员工视图(个人信息、员工扣减、受抚养人等等)。每个视图都可能有多个操作或子视图(例如CRUD)。每个动作都比较小,但是控制器可能有几十个函数。

是否有分割控制器的最佳实践?与其拥有一个具有数十个视图的员工控制器,不如为每个子类型(即EmployeePersonalInfoController、EmployeeDeductionController、EmployeeDependentController)设置一个控制器好吗?

最后,这有关系吗?

最新澄清

我最初关心的是CRUD的行为。例如,让我们考虑创建和删除..。

EmployeeController中的当前操作

代码语言:javascript
运行
复制
  CreateEmployee()
  DeleteEmployee()
  CreateEmployeeDeduction()
  DeleteEmployeeDeduction()
  CreateDependent()
  DeleteDependent()
  etc.

如果控制员被分开:

代码语言:javascript
运行
复制
  EmployeeController
    Create()
    Delete()
  EmployeeDeductionController
    Create()
    Delete()
  EmployeeDependentController
    Create()
    Delete()
  EmployeeBenefitController
    Create()
    Delete()
  etc.

在第一个场景中,我们的大约100个屏幕被分割成8-10个大型控制器。在第二种情况下,我可能会有50个控制器。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-07-29 03:33:50

在我看来,如果您将代码保持在控制器中,那么这并不重要。

您的大部分代码将发生在某个业务层,对吗?如果是这样的话,那么在控制器中真正要做的就是将数据返回到视图。它应该是的。

不太确定我是否喜欢把控制器划分成子类型。虽然你应该保持关注点的分离,但我认为子类型有点过头了。

你可以看看这篇文章,看看它是否有帮助。相同视点不同路径

这可能是比使用您建议的子类型方法更好的解决方案。

票数 18
EN

Stack Overflow用户

发布于 2009-07-29 08:16:19

部分类允许您将类分散到多个文件中。这样,您就可以将控制器的相关区域分组到单独的文件中,但它们仍然是同一个控制器的一部分。例如:

EmployeeDeductionController.cs

代码语言:javascript
运行
复制
public partial class EmployeeController
{
    public ActionResult Deduct()
    {
    }
    // etc
}

EmployeeBenefitController.cs

代码语言:javascript
运行
复制
public partial class EmployeeController
{
    public ActionResult GiveBenefit()
    {
    }
    // etc
}
票数 31
EN

Stack Overflow用户

发布于 2009-07-29 08:29:05

我不想有50个控制器。现在我的申请有16份,感觉还不错。如果您有50个控制器,您也将有50个图层文件夹的视图。很难找到您需要处理的视图和控制器。正如其他人提到的,操作通常是短的,在控制器中有几个操作并不坏。

我试着按系统部分设置一个控制器。我定义系统部件的方法是采用我的数据库架构,并在属于一起的表周围画一条线。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1197908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档