私の MVC アプリケーションでは、デフォルト ルートが定義されています。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new []{ "Demo.Controllers" }
);
Admin という名前の新しい Area を作成し、AdminAreaRegistration クラスにルートを追加しました。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", controller = "Home", id = UrlParameter.Optional }
);
}
メインの _Layout ファイルで、次のことを試みました。
@Html.RouteLink("Admin", "Admin_default")
特定の場合にのみ機能します (既に管理ページにいる場合など)。サイトの /Home/About セクションにいる場合、URL は次のように生成されます。
/Admin/Home/About
Home コントローラーの Index アクション (管理者ではなくメイン領域) にいる場合、URL は次のように生成されます。
/Admin
MVC で Areas を使用する必要があると思うように RouteLink が機能しないのはなぜですか?