10

所以我正在着手一个ASP.NET MVC项目,虽然总体上体验很好,但我对我的控制器变得一团糟并不十分满意。我在网上环顾四周(CodeCampServer 等),它们似乎都遇到了同样的问题,其中控制器方法非常一致地违反了 SRP(单一责任原则)——例如,如果请求是,控制器方法只会呈现视图aGET但更新modelif 它是 a POST。现在我有控制器方法负责整个应用程序中的多个逻辑路由 - 比如说它检查哪个button被点击表格并采取相应行动。我可以使用 JavaScript 将每个按钮单击重定向到不同的表单操作,但也感觉不对劲……另一个大问题是魔法的扩散strings - ViewData["foo"] = blah;长话短说,你们structurecontroller逻辑如何?每个视图一个巨大的模型对象?很多小controller methodsJavaScript是路由器吗?我的目标是可维护的代码 - 随着功能越来越多,我开始滑下那个滑坡......

4

2 回答 2

9

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

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

于 2008-08-30T18:52:47.230 回答
0

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

但我的控制器目前是单体。问题是我一直专注于学习项目的这一点(还有很多东西需要整理)。

我现在对 MVC 有了很好的了解,所以是时候回顾一下复杂性并考虑将控制器修改为更好命名和更清晰的函数了。

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

于 2008-11-13T13:12:15.467 回答