控制器数量

时间:2012-01-09 15:03:11

标签: asp.net-mvc controller

我正在制作一个Asp.Net MVC 3项目,该项目应该有大约10-15个视图。

我应该如何决定是将它们放在一个控制器还是多个控制器中?

或者,对一个数据库表使用一个控制器是一种更好的方法吗?

5 个答案:

答案 0 :(得分:3)

逻辑分离控制器。如果您有与产品打交道的东西,请制作产品控制器。如果您正在处理帐户,请使用AccountsController等

答案 1 :(得分:0)

真的取决于你的设计。示例:具有地址的客户端可能保存在多个表(客户端信息,地址等)中,在这种情况下,您最好只使用客户端控制器。无论如何,这只是一个场景。

答案 2 :(得分:0)

通常,您应该在遇到尚未拥有Controller的新业务实体时创建新的Controller。因此,您可以创建CustomerControllerProductsController,但创建CustomersToProductsController没有意义。

控制器与数据库表不是一对一的,它们与视图一定不是1比1。我希望这会有所帮助。

答案 3 :(得分:0)

使用控制器进行表格处理绝对不是更好,除非您的表格被布置为使得每个逻辑对象及其所有部分都在一个表中。正如Dismissle所说。按模块或用户组或权限或组合进行逻辑分组。即注册,登录,产品,用户管理员等。

答案 4 :(得分:0)

您可以根据域需求创建控制器。例如,如果您的系统具有注册表单/登录名,则可以为名称为“用户”的用户创建一个控制器,并且可以使用不同的操作方法。

 public class UsersController : Controller
 {
    // Get Request
    public ActionResult Signup()
    {
      return View();
    }
    // Sign up post
    [HttpPost]
    public ActionResult Signup()
    {
      // to do : your signup validation logic here
      return View();
    }

    // Get Request
    public ActionResult Login()
    {
      return View();
    }
    // Login post
    [HttpPost]
    public ActionResult Login()
    {
      return View();
    }

 }

类似地,您可以为另一个域模型(如Product

)使用另一个控制器
 public class ProductsController : Controller
 {
    // Get Request to list all Products
    public ActionResult List()
    {
      return View();
    }
    //remaining action methods based on your need
 }

我想,您的表格主要是重新制作您的域名模型。所以你可以为每个表创建一个控制器,如用户,客户,产品,订单等。