什么时候应该在MVC架构中有一个项目拥有自己的控制器?

时间:2012-05-11 15:26:03

标签: asp.net-mvc asp.net-mvc-3 model-view-controller controller

我目前正在构建一个MVC应用程序(特别是ASP.NET,但我想这也是一个更广泛的问题)。我已经在几个不同的背景下看到了这个问题,但我无法从这些讨论中弄清楚自己的情况。我有控制器,如:

  • 的HomeController
  • 的AccountController
  • EventController(我们的客户有活动)
  • MenuController(网站导航)
  • ReportController

我还有一些项目管理员管理不太清楚,这就是我的问题所在。注册后,我们的客户需要填写他们的“个人资料”的许多不同方面,例如商业信息,付款卡,银行账户,经理联系人(姓名/电话)。

目前我们已经创建了一个“ProfileController”,其中包含post / get函数,例如:

    [HttpGet]
    public ActionResult Business()

    [HttpPost]
    public ActionResult Business(...)

它的银行账户信息,支付卡,经理等也会有类似的东西。

这感觉不对。这一切都应该转移到AccountController吗?这些项目是否真的值得拥有自己的控制器,或者每个组件都有自己的控制器?

1 个答案:

答案 0 :(得分:4)

开发MVC应用程序非常类似于开发REST应用程序,您可以在开发MVC应用程序时应用REST原则。首先,你必须考虑资源。根据REST,资源是可以通过URL访问的实体。

如果您觉得上面谈到的每个模型都是资源,并且用户可以通过单独的URL访问它,那么您可以继续为单个AccountController正常的其他每个模型创建一个单独的控制器。

如果您绘制资源和URLS草图,那么您可以轻松识别您需要在应用程序中创建的控制器数量。