我一直在阅读“胖控制器”,但大多数文章都专注于将服务/存储库层逻辑从控制器中拉出来。但是,我遇到了不同的情况,我想知道是否有人有任何改进的想法。
我有一个太多动作的控制器,我想知道如何通过更少的操作将其分解为多个控制器。所有这些操作都负责插入/更新/删除所有属于同一聚合的对象。所以我并不热衷于为每个属于这个聚合的类提供一个单独的控制器......
为了向您提供更多详细信息,此控制器用于选项卡式页面。每个选项卡表示要编辑的数据的一部分,此处使用的所有域模型对象都属于同一聚合。
有什么建议吗?
干杯, MOSH
答案 0 :(得分:0)
对于所有选项卡,您可以使用一个具有tab参数的操作,该操作指示您需要返回的数据。
控制器作业是将此string
标签转换为enum
类型变量。然后,选项卡将发送到存储库,存储库作业将返回数据以响应选项卡值。
控制器应该完成服务:输入验证器和映射器。
映射器服务作业是将用户输入(通常是字符串)映射到实际类型值(int,System.DateTime,枚举类型等)。
验证器作业是检查输入是否有效。
遵循这些原则应该让你的控制器非常小。
答案 1 :(得分:0)
如果你想要简单易用的东西,我建议你根据标签将控制器拆分成部分类。当然,它仍然是一个胖控制器,各种标签功能之间只有一些明显的区别。