web-dev-qa-db-ja.com

共有レイアウトのASP.NET MVCエリア

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リンクが正しいアドレスを指すようにするにはどうすればよいですか?
ありがとうございます。

39
Kamyar

ルートコントローラーからサービスを提供する場合は、空白の領域を指定するだけです。

<li>@Html.ActionLink("About Us", "About", "Home", new { area = "" }, null)</li>
48
Darin Dimitrov