を使用してASP.NET MVC3
います。ルートを設定しようとしていますが、競合するルートがあるようです。誰かが私を正しい方向に向けることができることを期待して、それを修正する方法がわかりません。
私のウェブサイトには、アプリケーションを表示できるセクションが 2 つあります。Web サイトの通常のユーザーは、自分のアプリケーションのみを表示できます。また、管理者は、管理領域を使用してキャプチャされたすべてのアプリケーションを表示できます。
メモは、既存のアプリケーションに追加できます。メモは、アプリケーションのプロセス中にいつでも取得できる追加情報です。次のようなアプリケーション用に既にキャプチャされたすべてのメモを表示しようとしています。
/Application/1001/Notes
/Administration/Application/1001/Notes
これがルートの構成方法です。
Routes.MapRoute(
"ApplicationNote",
"{controller}/{applicationId}/Notes",
new { controller = "Application", action = "Notes" },
new { applicationId = @"\d+" },
new[] { "MyProject.Web.Controllers" });
Routes.MapRoute(
"AdminApplicationNote",
"{area}/{controller}/{applicationId}/Notes",
new { area = "Administration", controller = "Application", action = "Notes" },
new { applicationId = @"\d+" },
new[] { "MyProject.Web.Areas.Administration.Controllers" });
最初のリンク (データ テーブルの各アプリケーションの隣) を表示するには、各レコードのアクション リンクを生成するコントローラーに次のものを用意します。
string actionLinks = string.Empty;
actionLinks += "<a href=\"" + Url.Action("Notes", "Application", new { area = string.Empty, applicationId = application.Id }) + "\">" + "Notes</a>";
次のように表示する 2 番目のリンク (コントローラー アクションから、上記と同じ):
string actionLinks = string.Empty;
actionLinks = "<a href=\"" + Url.Action("Notes", new { applicationId = application.Id, area = "Administration", controller = "Application" }) + "\">" + "Notes</a>";
最初の構成はうまく機能します。
/Application/1001/Notes
...しかし、2番目はあまり良くありません。2 番目の構成のリンクにカーソルを合わせると、ステータスが次のように表示されます。
/Administration/Application/Notes?applicationId=1001
管理エリアのルート構成で何が間違っていますか?