繁体   English   中英

ASP.NET MVC:构造控制器

[英]ASP.NET MVC: Structuring Controllers

所以我正在着手一个ASP.NET MVC项目,虽然整体经验很好,但我对控制器已经变成的意大利面条很不满意。 我在网上看了看(CodeCampServer等等),他们似乎都遇到了同样的问题,其中控制器方法非常一致地违反SRP(单一责任原则) - 例如一个控制器方法,如果请求是简单的呈现视图一个GET ,但更新的model ,如果它是一个POST 现在我有控制器方法负责整个应用程序中的多个逻辑路由 - 比如它检查在表单上单击了哪个button并采取相应的行动。 我可以使用JavaScript将每个按钮单击重定向到不同的表单动作,但是在那里也感觉不到......另一个大问题是魔术strings - ViewData["foo"] = blah;的扩散strings - ViewData["foo"] = blah; 长话短说,你们如何structure controller逻辑? 每个视图一个巨型模型对象? 路由器有很多小controller methodsJavaScript吗? 我的目标是可维护的代码 - 随着功能的积累,我开始滑下滑坡......

ASP.NET Preview 5(在CodePlex上提供 )有一个答案:[AcceptVerbs]属性。 Phil Haack在博客文章中讨论了它是如何使用的。

至于视图数据魔术关键问题,这是一个有趣的问题。 如果你认为一个视图是一堆半独立的组件(特别是考虑到新的局部视图支持),那么使一个强类型模型变得不太理想,因为视图的几个部分应该相对独立于另一个。

不同的人如何处理这个问题? 我知道我只花了几个小时来审查模型文件夹里面的混乱。 我发现创建文件夹有助于减少视觉混乱,使用匹配的命名空间也有帮助。

但我的控制器目前是巨石。 麻烦的是我一直专注于在项目中学习这一点(还有很多要梳理的)。

我现在正在很好地处理MVC,所以现在是时候审查复杂性并考虑将控制器修改为更好的命名和更清晰的功能。

其他人是否将控制器分解为子控制器? (如果有这样的事情)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM