Asp.net mvc UrlHelper。操作未生成正确的路由
我正在MVC4操作方法中生成URLAsp.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
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 });