我的文件夹如下所示:
(根)/Areas/Admin/Routes.cs
(根)/地区/论坛/浏览次数/..
(根)/Areas/Forum/Routes.cs
public class Routes : AreaRegistration
{ 公共覆盖字符串AreaName { 得到{return“Admin”; } }
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_Default",
"{controller}/{action}/{Id}",
new { controller = "Admin", action = "Index", Id = (string)null }
);
}
}
public class Routes:AreaRegistration { 公共覆盖字符串AreaName { 得到{返回“论坛”; } }
public override void RegisterArea(AreaRegistrationContext routes)
{
routes.MapRoute(
"Forum_Default",
"{controller}/{action}",
new { controller = "Forum", action = "Index"}
);
}
}
Global.asax中
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
AreaRegistration.RegisterAllAreas();
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
首页应该是Home / Index,但它以Admin / Index开头,为什么?
只有site.com/Admin不适用于site.com/Forum
我应该如何让管理员和论坛区域正常工作?为什么只有管理员工作而不是论坛?
当我删除Admin / Routes.cs文件论坛开始工作......
修改
主页在〜/ Views /中即使我有
也不显示为起始页 routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
在AreaRegistration.RegisterAllAreas(); 之后在我的Global.asax中
答案 0 :(得分:2)
我相信你的区域映射应该是这样的。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_Default",
"Admin/{controller}/{action}/{Id}",
new { controller = "Admin", action = "Index", Id = (string)null }
);
}
和
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Forum_Default",
"Forum/{controller}/{action}/{Id}",
new { controller = "Forum", action = "Index"}
);
}
保持您的路线不会发生冲突,这就是我认为您的情况正在发生的事情。由于您的默认路由与您的管理路由匹配。