Asp.net mvc 3 @Ajax.ActionLink的呈现因添加新路由而混乱
我有一个ActionLink:Asp.net mvc 3 @Ajax.ActionLink的呈现因添加新路由而混乱,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc 3,Asp.net Mvc Routing,我有一个ActionLink: <td> @Ajax.ActionLink(item.HostedBy, "_DetailsMerged", "Marcher", new { id = item.HostedById }, new AjaxOptions { UpdateTargetId = "marcherId" + @i , HttpMe
<td>
@Ajax.ActionLink(item.HostedBy, "_DetailsMerged", "Marcher",
new { id = item.HostedById },
new AjaxOptions
{
UpdateTargetId = "marcherId" + @i ,
HttpMethod="GET",
InsertionMode = InsertionMode.Replace,
})
</td>
在我的客户端javascript ajax调用(看起来像:/webgisucsproxy?zip=10003
)中,半硬编码链接正常工作时,会搞乱@ajax.ActionLink
链接的呈现方式。他们也会选择“/webgisucsproxy”
。所以我得到:
http://localhost:59723/WebgisUscproxy?action=_DetailsMerged&controller=Marcher&id=1
而不是:
http://localhost:59723/Marcher/_DetailsMerged/1
这就是我想要的,并且只使用默认路由。推杆:
routes.Add("WebgisUscproxy", new Route("WebgisUscproxy", new OpenLayers_Bronze.Utility.WebgisUscProxyHandler()));
之后,默认路由处理程序也不起作用,因为默认路由现在匹配半硬编码链接,如'/webgisucsproxy?zip=10003'
==========================================================================
我找到了一份工作,不过我希望有人能发布更直接的东西
routes.MapRoute("webgisusc", "WebgisUscProxy",
new { controller = "Utility", action = "WebgisUsc" }
).RouteHandler = new OpenLayers_Bronze.Utility.WebgisUscProxyHandler();
我创建了一个空的实用程序控制器,并准备添加一个虚拟的“WebGisusProxy”
但事实证明,即使是一个虚拟的UtilityController也没有必要。此路由定义本身就可以工作 太棒了!:-)。我不得不在我的url中添加一个/{*path},但除此之外,我认为您自己的解决方案值得向上投票作为答案。这太棒了!:-)。我不得不在我的url中添加一个/{*path},但除此之外,我认为您自己的解决方案值得向上投票作为答案。
routes.MapRoute("webgisusc", "WebgisUscProxy",
new { controller = "Utility", action = "WebgisUsc" }
).RouteHandler = new OpenLayers_Bronze.Utility.WebgisUscProxyHandler();