ASP.NET MVC 3アプリケーションで領域(管理者)を定義し、その領域に__ViewStart.cshtml
_を作成し、そこに_Layout = "~/Views/Shared/_Layout.cshtml";
_を追加して、サイトレイアウトを統一しました。
また、次のコードを__Layout.cshtml
_に追加しました。
_if (HttpContext.Current.User.IsInRole("Admin"))
{
<li>@Html.ActionLink("Items List", "Index", "Items", new { area = "Admin" }, null)</li>
}
_
Admin
領域は、__Layout.cshtml
_をレイアウトとして正しく表示されます。ただし、ページ内のすべてのナビゲーションリンクはAdmin
サブフォルダーをポイントしています。
たとえば、私のレイアウトには、_Mysite/Home/About
_を指す<li>@Html.ActionLink("About Us", "About", "Home")</li>
があります。しかし、管理リンクをクリックした後、「About Us」リンクは_/Admin/Home/About
_を指します。
_Layout.cshtmlリンクが正しいアドレスを指すようにするにはどうすればよいですか?
ありがとうございます。
ルートコントローラーからサービスを提供する場合は、空白の領域を指定するだけです。
<li>@Html.ActionLink("About Us", "About", "Home", new { area = "" }, null)</li>