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

有帮助吗?

解决方案

ASP.NET 预览版 5(可在 代码库)对此有一个答案:[AcceptVerbs] 属性。菲尔·哈克有一个 博客文章 讨论如何使用它。

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

其他提示

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

但我的控制器目前是庞然大物。问题是我一直专注于项目中的学习(仍然有很多问题需要解决)。

我现在已经很好地掌握了 MVC,因此是时候检查复杂性并考虑将控制器修改为更好的命名和更清晰的功能。

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

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