一个视图应该在MVC中有一个控制器吗?

时间:2015-01-20 12:10:11

标签: c# asp.net-mvc asp.net-mvc-4 model-view-controller asp.net-mvc-5

我目前正在使用MVC 5 Web应用程序,我被建议使用一种View per Controller方法,我认为这种方法非常难以维护,而且MVC的优势是没收。

请建议,因为我的应用程序将拥有大约180个用户界面页面,这意味着180个控制器根据建议。

1 个答案:

答案 0 :(得分:6)

简短回答:

这不是ASP.NET MVC的工作方式。一个控制器应该“分组”属于一个任务/区域的视图的所有操作,如AccountController处理所有与帐户相关的操作。你如何对它们进行分组取决于你的申请 当然这并不意味着您不能使用多个控制器来处理“帐户相关的东西”,但如果控制器开始变得非常大,我只会开始将操作拆分为多个控制器。而且真的很大,我的意思是几行代码或更高的双位数行动 但即便如此,将一些逻辑移动到单独的辅助类中并将所有操作(可能只调用辅助方法)保存在一个控制器中可能更有意义。

想象一下您的观点的以下文件夹结构:

  

- 意见/
  ---- AccountAction1 /
  ------ AccountAction1.cshtml
  ---- AccountAction2 /
  ------ AccountAction2.cshtml
  ---- AccountAction3 /
  ------ AccountAction3.cshtml

与以下相比,这似乎有点奇怪:

  

- 意见/
  ----帐户/
  ------ Action1.cshtml
  ------ Action2.cshtml
  ------ Action3.cshtml