MVCでの単純なタスクは、難しい課題になることがあります。
さて、私は管理者と呼ばれるエリアを持っています。この領域のSharedのディレクトリ内に「Forbidden」という名前のページがあります。
目標は単純です。ホームページに戻るためのリンクを生成するHtml.ActionLinkを作成する必要があります。これは[〜#〜] outside [〜#〜]管理領域です。
だから私は試してみます、<%= Html.ActionLink("Back","Index",new {controller="Home"})%>
、そしてその生成:
http://localhost/Admin/Home/Index
それは間違っています!
http://localhost/Home/Index
エリアからデフォルトのコントローラー構造へのリンクを作成するにはどうすればよいですか?
これを試して :
<%= Html.ActionLink("Back", "Index", "Home", new { area = "" }, null) %>
Areasを使用する場合は、上記のようにルート値を追加して、ActionLinksで呼び出すエリアを常に指定する必要があります。リンクがエリア外にある場合(あなたの場合のように)、エリアに空のパラメーターを使用します。
ASP.NET MVCプロジェクト(T4MVC)に不可欠な素晴らしい拡張機能があります。これにより、ActionLinkがよりきれいに見え、エラーから保護されます。
したがって、上記のコードは次のようになります。
<%= Html.ActionLink("Back", MVC.Home.Index()) %>
エリアを使用する場合:
<%= Html.ActionLink("Some Link", MVC.Admin.SomeController.SomeAction()) %>
これは、codeplexのMvcContribプロジェクトの一部です ここ
あなたはそれを使うことを考えるべきです。