拆分MVC控制器功能的最佳方法是什么?

时间:2009-06-22 14:53:00

标签: asp.net-mvc model-view-controller controllers web-user-controls

制作控制器时,拆分它的最佳方法是什么?

如果我有一个管理部分,其下面有一堆.ascx Web用户控件和几个.aspx页面。我应该有一个AdminController吗?或者我应该为每个管理页面/网络用户控件设置一个控制器吗?

似乎负责单个页面的操作违背了MVC试图从Web窗体改进的一个方面。但与此同时,您不希望整个网站使用一个控制器......

我理解控制器应该做什么,但是一个控制器应该负责多少?拆分控制器责任的最佳方法是什么?

谢谢,
马特

2 个答案:

答案 0 :(得分:2)

总共有75%的答案,但作为一个非常灵活的答案,每个型号一个控制器,然后只是给它足够的灵活性来创建,读取,更新和删除该模型(最好保持界面在控制器之间保持一致并避免特殊情况除非绝对必要,否则接口。)

这适用于所有情况,除了它没有的情况!

REST是思考这个问题的一个非常好的框架。虽然以下指南针对rails的方式,但很多概念应该更广泛适用http://www.softiesonrails.com/2007/3/28/rest-101-part-1-understanding-resources

答案 1 :(得分:0)

一个AdminController是个不错的选择。控制器中的不同方法在管理员功能集中具有不同的职责,并在适当时具有不同的视图。

您可以在Nerddinner项目中看到这种分工。