我有一个名为“Admin”的mvc区域,里面有3个控制器,但可以是5个或更多,对于任何控制器,我必须将[Area(“Admin”)]属性放在控制器类定义之上。
我不想这样做:[区域(“管理员”)]对于此管理区域内的所有控制器,
我可以在mvc 6中注册该区域的所有控制器吗?
答案 0 :(得分:0)
对于MVC6 ,您需要使用Area
属性修饰控制器。如果你不想将它添加到单个控制器,你可以简单地创建一个具有区域装饰的基本调用,并从中继承你的其他控制器。
[Area("Admin")]
public class AdminArea : Controller
{
}
public class OrdersController : AdminArea
{
public IActionResult Index()
{
return View();
}
}
public class ProductsController : AdminArea
{
public IActionResult Index()
{
return View();
}
}
MVC 5及以下
您不需要在控制器名称上添加该属性,只需在区域路径注册中指定区域名称即可。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", controller= "YourDefaultCtrl", id = UrlParameter.Optional }
);
}