我有两条非常简单的路线
routes.MapRoute(
"post", // Route name
postPage + "/{slug}", // URL with parameters
new { controller = "Home", action = "Article" } // Parameter defaults
);
routes.MapRoute(
"page", // Route name
"{slug}", // URL with parameters
new { controller = "Home", action = "Page", slug = homePage} // Parameter defaults
);
这是我的控制器逻辑
public ActionResult Article(string slug)
{
return View(repo.GetPost(slug));
}
public ActionResult Page(string slug)
{
if (slug.ToLower() == MetaData.PostsPage.ToLower())
return View("listPosts", repo.GetAllPosts());
else
return View("page", repo.GetPage(slug));
}
homePage 和 postPage 是从数据库中的值设置的。允许用户定义默认页面以及显示帖子的页面。
添加名为“Admin”的区域时出现我的问题。我将控制器添加到我的 RouteTable
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
现在,当用户访问 Admin/Account/Logon 时,页面加载正常,但我的调试器仍然尝试进入 Home 控制器和 Page 操作。但是 RouteDebugger 说它与当前请求不匹配。我很困惑如何解决这个问题。
RouteDebugger 截图: http: //i.stack.imgur.com/7cpHm.png 调试器进入我的 HomeControler 页面 AtionResult:http: //i.stack.imgur.com/uSJBK.png