我的网络应用中有一个名为“Admin”的区域。
因此,http://localhost.com/Admin转到管理区域中的Home Controller和Index Action。
但是,我希望能够使用以下网址点击Admin Home Controller和Index Action:
我有这个尝试:
routes.MapRoute(
"HelloPage",
"Hello/{controller}/{action}",
new{area= "Admin", controller = "Home", action = "Index"},
new[] { typeof(Areas.Admin.Controllers.HomeController).Namespace });
正如您所看到的,我正在指定命名空间和区域,但我得到的只是路由错误:
未找到“索引”视图或其主视图或视图引擎不支持搜索的位置。
它没有在管理区域搜索。
有什么想法吗?
答案 0 :(得分:5)
试试这个:
routes.MapRoute(
"HelloPage",
"Hello/{controller}/{action}/{id}",
new { area = "Admin", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
然后将其添加到管理控制器操作中:
if (!this.ControllerContext.RouteData.DataTokens.ContainsKey("area"))
{
this.ControllerContext.RouteData.DataTokens.Add("area", "Admin")
}
您可以check here获取进一步的文档。
答案 1 :(得分:5)
问题在于我在Global.asax中设置路线。
我应该在Admin区域的AreaRegistration中设置它。一旦我这样做,问题就解决了。