如何在ASP.NET MVC应用程序中限制控制器中的操作?

时间:2009-07-22 10:53:28

标签: c# asp.net asp.net-mvc

我写了一个MVC应用程序,我真的很难保持我的控制器精简并限制动作的数量。

例如,这里是我的ReportController操作: OpenCall的
ClosedCall
ServiceLevelAgreement
屏障
分辨率
修复
故障
库存
CustomerLocation

这些都是我不同的报道。我应该为每个人制作一个控制器吗?

以下是我的ServiceCallController操作: 新
创建
重新打开
UpdateETA
UpdateOnsite
UpdateServiceTimes
UpdateEnroute
关闭
取消
重新分配
显示
ModifyAfterClose

根据用户想要做的事情,这是我需要采取的所有不同行动。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我认为它已经很干净了。如果你的一个对象能够做7-8个动作,那么你的结构就是你要走的路。如果您有一个负责多个业务对象操作的控制器,那么我建议您将其更改为当前设计的方式。

关于您当前的设计,有一点是,对ServiceCallController进行一次更新操作是个好主意,该操作可以将更新内容作为参数。毕竟,所有这些更新操作都做了一件事:更新您的业务对象。

但是如果你仍然不满意,那么你可以只有一个名为“do”的动作,它将动作作为参数并将其传递给服务层,该服务层返回请求所需的内容。但IMO,这不是一个好的设计,所以我绝对不建议。

答案 1 :(得分:0)

如果它自己的文件变得很大而你可以使用部分类,或者将逻辑关闭到一个单独的类中,让你的控制器思考和倾斜。