Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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 UrlHelper。操作未生成正确的路由_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc UrlHelper。操作未生成正确的路由

Asp.net mvc UrlHelper。操作未生成正确的路由,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我正在MVC4操作方法中生成URL redirectUrl = new UrlHelper(this.ControllerContext.RequestContext).Action( "MyAction", "MyController", new { id = someVariable, id2= someVariable2}); 现在的问题是它附加了Id2作为查询参数。我在RouteConfig.cs中定义了一个特定的路由,类似于Controller

我正在MVC4操作方法中生成URL

redirectUrl = new UrlHelper(this.ControllerContext.RequestContext).Action(
                    "MyAction", "MyController", new { id = someVariable, id2= someVariable2});
现在的问题是它附加了Id2作为查询参数。我在RouteConfig.cs中定义了一个特定的路由,类似于Controller/Action/Id/Id2


如何强制生成特定于路由的URL

如果在RouteConfig.cs中设置了路由,可以使用RouteUrl()按名称调用它


如果在RouteConfig.cs中设置了路由,则可以使用RouteUrl()按名称调用它


如何在Url.RouteUrl中指定控制器和操作名称?rectUrl=Url.RouteUrl(“YourRouteName”,new{id=someVariable,id2=someVariable2,controller=“MyController”,Action=“MyAction”});我在两个地方使用RouteUrl,一个在我的控制器中,一个在Ajax Jquery中。我所做的是创建一个URL,并通过Ajax响应将其发送回,然后在我的客户端I-e窗口中重定向。location.href=response.redirectUrl。这很好,但当我尝试在控制器中使用相同的Url.RouteUrl值和redect(Url)时,它不会附加在我的Url之前。为什么它在JS中工作而不是在我的控制器中的Action方法中工作。如果我使用Request.Url.Scheme,那么它可以工作。这是正确的方法吗?很难说这是不是“正确”的方法,但是RouteUrl()应该给你一个完全限定的url,你可以像这样重定向到它,返回新的重定向结果(url);如何在Url.RouteUrl中指定控制器和操作名称?rectUrl=Url.RouteUrl(“YourRouteName”,new{id=someVariable,id2=someVariable2,controller=“MyController”,Action=“MyAction”});我在两个地方使用RouteUrl,一个在我的控制器中,一个在Ajax Jquery中。我所做的是创建一个URL,并通过Ajax响应将其发送回,然后在我的客户端I-e窗口中重定向。location.href=response.redirectUrl。这很好,但当我尝试在控制器中使用相同的Url.RouteUrl值和redect(Url)时,它不会附加在我的Url之前。为什么它在JS中工作而不是在我的控制器中的Action方法中工作。如果我使用Request.Url.Scheme,那么它可以工作。这是正确的方法吗?很难说这是不是“正确”的方法,但是RouteUrl()应该给你一个完全限定的url,你可以像这样重定向到它,返回新的重定向结果(url);
rectUrl = Url.RouteUrl("YourRouteName", new { id = someVariable, id2 = someVariable2 });