我的工作我的第一次真正的ASP.NET MVC项目,我已经注意到,我在已经工作的控制器越来越相当大。这种看似违背保持你的控制器瘦的最佳实践。

我已经做了很好的工作,使业务逻辑从控制器。我用一个单独的层。每个动作主要调用业务层的方法和基于所述的ModelState是否是有效的坐标的最终结果。

这就是说,该控制器具有大量动作的方法。直觉上,我想破控制器分解成子控制器,但我没有看到一个简单的方法来做到这一点。我可以简单地打破控制器分解成单独的控制器,但我松层次结构和感觉有点脏。

是否有必要进行重构控制器具有大量细的行动?如果是的话,要做到这一点的最好方法是什么?

有帮助吗?

解决方案

首先,当你听到,这是很好的保持控制代码到最低限度,这主要是指保持每个动作方法尽可能薄(把逻辑,而不是到业务类,请不可以为视图和的ViewModels。)看来你这样做,这是伟大的。

对于具有“太多”行动方法,这是一种主观判断。它实际上可能是良好的组织的标志,你遇到一件事每个动作的焦点。另外,也许你正在使用专门为使用的RenderAction行动?而且,它可能只是解决方案的本质,有很多事情要做与您控制器的主题。

所以,我的猜测是,你可能罚款。但是,为了确保,在便签纸打出来的控制器为2个或3控制器,并勾画出你的故事将如何工作从行动转向行动。如果您发现您的工作流程可与多个控制器,你应该打破它。特别是如果你打算稍后加入到这个功能。越早你休息吧越好。

其他提示

好问题。

我相信“瘦”控制器可能仍需要为“宽”或“高”,这取决于你想如何拉伸类比。如果没有干净的方式打破了一个控制器,需要做很多的事情,我不认为因为每个动作都专注于准备查看/的ViewModels是有限的代码大小的这是因为长的问题。

在具有另一种结构选项引入部分类为动作逻辑分组。以及使用类似vscommands到组中的文件一起。

我怀疑任何人都可以想出一个神奇的一系列行动,告诉你当它是一个好主意,打破东西了,并引进新的控制器,这真的取决于你的域。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top