私は2つの非常に単純なルートを持っています
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は、データベース内の値から設定されます。ユーザーがデフォルトのページと投稿を表示するページを定義できるようにします。
「管理者」という名前の領域を追加すると、問題が発生します。RouteTableにコントローラーを追加しました
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
これで、ユーザーが管理者/アカウント/ログオンにアクセスすると、ページは正常に読み込まれますが、デバッガーは引き続きホームコントローラーとページアクションにアクセスしようとします。しかし、RouteDebuggerは、現在の要求と一致しないと言っています。これを修正する方法に戸惑っています。
RouteDebuggerのスクリーンショット:http : //i.stack.imgur.com/7cpHm.png私のHomeControlerページに入るデバッガーAtionResult:http: //i.stack.imgur.com/uSJBK.png