我正在使用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
我在管理区域的路由配置中做错了什么?