【发布时间】:2014-11-19 06:05:03
【问题描述】:
到目前为止,我无法完成这项工作,我需要一些帮助。我有一个基本的 MVC 5 站点,并且我添加了一个名为 Administration 的区域。对于我的生活,我无法弄清楚如何正确地为区域设置默认控制器/动作。
在我的站点中,我有一个名为 Admin 的区域,一个名为 Admin 的控制器(带有 Index 方法和视图),这是区域注册:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: "Admin_base",
url: "Admin",
defaults: new { area = "Admin", controller = "Admin", action = "Index", id = UrlParameter.Optional }
);
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
第一个 MapRoute 允许我浏览到 http://myapplication/Admin,它显示我设置的视图(管理员/索引),并且 URL 保持为 http://myapplication/Admin(这是我想要的)。现在,通过添加它,它会中断到控制器的任何进一步路由。因此,当我尝试导航到管理区域中的菜单控制器时,它会失败。
有正确的方法吗?
即我需要使http://myapplication/Admin/Menu/Create 路由正确,但还需要保留该区域的默认Controller/Action。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas