两套控制器

时间:2012-07-27 21:22:23

标签: c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-4

所以我创建了一个包含两个绑定的网站

routes.MapRoute(
  name: "Default", 
  url: "{controller}/{action}/{id}", 
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });

routes.MapRoute(
  name: "DefaultAdmin",
  url: "Admin/{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });

这个想法是我想让EndUsers访问普通页面(/account/login等等),但管理员用户只有一个管理员部分(具有不同的布局)。

问题有点像: -

  1. 就控制器而言,MVC看起来只是在Controllers文件夹中查找,是否有办法分离AdminControllers和常规控制器以保持组织有序?

  2. 我想为管理员显示一个单独的“主视图”而不是常规,目前我只是使用来自_layout.cshtml的{​​{1}},但我希望能够使用_start.cshtml_layout.cshtml而不在每个视图前面加上视图的名称(如果没有,那么我可以很容易地使用这个视图)。

  3. 任何帮助都会受到影响。

2 个答案:

答案 0 :(得分:3)

您可以将控制器放置在程序集中的任何位置,只要它们派生自System.Web.Mvc.Controller类,它们将由路由逻辑识别。

您可以查看MVC中的“区域”,以帮助满足您的特定需求。

答案 1 :(得分:2)

听起来MVC中的Areas就是你要找的东西。