Asp.net mvc w/Url.Action当目标指向索引页时
我遇到的情况是,在需要时,没有生成“完全合格”的路由。以下代码演示了该问题:Asp.net mvc w/Url.Action当目标指向索引页时,asp.net-mvc,area,ambiguous,url.action,Asp.net Mvc,Area,Ambiguous,Url.action,我遇到的情况是,在需要时,没有生成“完全合格”的路由。以下代码演示了该问题: var junk = Url.Action("Index2", "Reference", new { area = "Admin" }); junk = Url.Action("Index", "Reference", new { area = "Admin", memberID = 47 }); 对Url.Action()的第一次调用产生/Admin/Reference/Index2
var junk = Url.Action("Index2", "Reference", new { area = "Admin" });
junk = Url.Action("Index", "Reference", new { area = "Admin", memberID = 47 });
对Url.Action()的第一次调用产生/Admin/Reference/Index2。第二个调用生成/Admin/Reference,我猜是因为“Index”是默认标识符
不幸的是,路由映射(自从它由VS2010生成以来,我没有修改过)当然会将第二个路由作为根区域中管理控制器上的引用方法的调用来处理。路由解析程序无法知道第二个链接实际上是用于管理区域中引用控制器的索引处理程序的
一个明显的解决方法是在区域内的控制器中不使用索引方法。但这看起来很难看。我对更好/更稳健的方法感兴趣。好的,没关系。原来问题是一个不正确的区域名称和一个需要能够响应GET的方法上的HttpPost属性的组合。请忽略好的,没关系。原来问题是一个不正确的区域名称和一个需要能够响应GET的方法上的HttpPost属性的组合。请忽略好的,没关系。原来问题是一个不正确的区域名称和一个需要能够响应GET的方法上的HttpPost属性的组合。请忽略。您可以将您的解决方案发布为下面的答案,然后接受它。(点击大复选标记)好的,没关系。原来问题是一个不正确的区域名称和一个需要能够响应GET的方法上的HttpPost属性的组合。请忽略。您可以将您的解决方案发布为下面的答案,然后接受它。(通过单击大复选标记)