胖ASP.NET MVC控制器

时间:2010-03-12 05:46:27

标签: asp.net asp.net-mvc controller fat

我一直在阅读“胖控制器”,但大多数文章都专注于将服务/存储库层逻辑从控制器中拉出来。但是,我遇到了不同的情况,我想知道是否有人有任何改进的想法。

我有一个太多动作的控制器,我想知道如何通过更少的操作将其分解为多个控制器。所有这些操作都负责插入/更新/删除所有属于同一聚合的对象。所以我并不热衷于为每个属于这个聚合的类提供一个单独的控制器......

为了向您提供更多详细信息,此控制器用于选项卡式页面。每个选项卡表示要编辑的数据的一部分,此处使用的所有域模型对象都属于同一聚合。

有什么建议吗?

干杯, MOSH

2 个答案:

答案 0 :(得分:0)

对于所有选项卡,您可以使用一个具有tab参数的操作,该操作指示您需要返回的数据。

控制器作业是将此string标签转换为enum类型变量。然后,选项卡将发送到存储库,存储库作业将返回数据以响应选项卡值。

控制器应该完成服务:输入验证器和映射器。

映射器服务作业是将用户输入(通常是字符串)映射到实际类型值(int,System.DateTime,枚举类型等)。

验证器作业是检查输入是否有效。

遵循这些原则应该让你的控制器非常小。

答案 1 :(得分:0)

如果你想要简单易用的东西,我建议你根据标签将控制器拆分成部分类。当然,它仍然是一个胖控制器,各种标签功能之间只有一些明显的区别。