-1
我正在使用ASP.NET MVC3
。我試圖配置我的路線,但似乎有衝突的路線。不知道如何解決這個問題,希望有人能指引我走向正確的方向。需要與正常路由配置相似的區域路由配置
我在我的網站有2個部分,可以查看應用程序。網站的普通用戶只能查看他/她的應用程序。管理員可以查看使用管理區域捕獲的所有應用程序。
可以將註釋添加到已存在的應用程序中。註釋只是在應用程序的過程中隨時可以捕獲的附加信息。我期待,以顯示已拍攝了這樣的應用程序中的所有筆記:
/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>";
第二連桿從我的控制器操作我顯示像這樣(,同如上):
string actionLinks = string.Empty;
actionLinks = "<a href=\"" + Url.Action("Notes", new { applicationId = application.Id, area = "Administration", controller = "Application" }) + "\">" + "Notes</a>";
第一個配置效果良好:
/Application/1001/Notes
...但第二次沒有這麼好。當我將鼠標懸停在第二個配置的鏈接,然後在狀態顯示:
/Administration/Application/Notes?applicationId=1001
我在做什麼毛病管理區的路由配置?
奇怪。我想知道applicationID約束是否被尊重,即使它不在指定的段中。您可以嘗試http://example.org/Administration/Application/Notes並查看哪些操作正在運行? –
@Brendan Vogt你是否已經解決了管理區域的路由配置?你有沒有找到更好的解決方案? – Mate