MVC3 アプリケーション内のメイン _Layout.cshtml ファイル内にリンクを作成しています。
@Html.ActionLink("Security", "Index", "Home", new { area = "Security" }, new { })
ページがレンダリングされるとき、これは結果の Html です。
<a href="/Security">Security</a>
このリンクをクリックすると、空白のページが表示されます。
routedebuggerをインストールしました。結果は次のとおりです。
次のように、Global.ascx.cs 内に既定のルートがあります。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Eis.Mvc.Web" }// Parameter defaults
);
およびセキュリティ エリアのルート:
context.MapRoute(
"Security_default",
"Security/{controller}/{action}/{id}",
new { area = "Security", controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Eis.Mvc.Web.Areas.Security.Controllers" }
);
http://localhost:1410/Security/homeという URL を直接入力すると、正しいページが表示されます。
@Html.Action リンクに URL のコントローラー部分を含めるにはどうすればよいですか?
アプリケーションのルート部分内に Index アクションを持つ Home コントローラーがあり、ルート登録に Namespace フィルターを含める必要がありました。
ありがとう、キース