asp.net-mvc – 保持控制器瘦(太多的动作方法)

我正在研究我的第一个真正的ASP.NET MVC项目,我注意到我一直在工作的控制器变得越来越大。这似乎违背了保持控制器薄的最佳做法。

我在保持业务逻辑不受控制器方面做得很好。我为此使用了一个单独的层。每个操作主要调用业务层中的方法,并根据模型状态是否有效来协调最终结果。

也就是说,控制器有很多动作方法。直观地说,我想将控制器分解为子控制器,但我没有看到一种简单的方法。我可以简单地将控制器分解为单独的控制器,但是我松散了层次结构,感觉有点脏。

是否有必要使用大量精简操作重构控制器?如果是这样,最好的方法是什么?

解决方法

首先,当您听到将控制器代码保持在最低限度时,这主要是指保持每个操作方法尽可能薄(将逻辑放入业务类中,而不是放入Views和viewmodel中。)看来你正在这样做,这很棒。

对于“太多”的动作方法,这是一个判断调用。它实际上可能是良好组织的标志,你将每个行动都集中在一件事上。另外,也许您正在使用专门用于RenderAction的操作?并且,您的解决方案的本质可能只是与Controller的主题有关的许多事情。

所以,我的猜测是你可能没事。但是,为了确保在便条纸上将控制器分成两个或三个控制器,并勾勒出您的故事如何从行动转变为行动。如果您发现您的工作流程适用于更多控制器,您应该将其分解。特别是如果您稍后要添加功能。你越早打破就越好。

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...