Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 @Ajax.ActionLink的呈现因添加新路由而混乱_Asp.net Mvc 3_Asp.net Mvc Routing - Fatal编程技术网

Asp.net mvc 3 @Ajax.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

我有一个ActionLink:

<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();