2013-06-27 63 views
1

我在我的MVC4 Action Method中生成URL。UrlHelper.Action不會生成正確的路由

redirectUrl = new UrlHelper(this.ControllerContext.RequestContext).Action(
        "MyAction", "MyController", new { id = someVariable, id2= someVariable2}); 

現在麻煩的是它添加了Id2作爲查詢參數。我在RouteConfig.cs就是喜歡控制器/動作定義的特定路由/身份證/ ID-

我如何可以強制使用生成航線特定的URL

回答

4

如果你有一個路線在RouteConfig.cs成立,你可以用名稱使用RouteUrl()

rectUrl = Url.RouteUrl("YourRouteName", new { id = someVariable, id2 = someVariable2 }); 
+0

如何在Url.RouteUrl中指定控制器和操作名稱? – InTheWorldOfCodingApplications

+0

rectUrl = Url.RouteUrl(「YourRouteName」,new {id = someVariable,id2 = someVariable2,controller =「MyController」,action =「MyAction」}); –

+0

我在兩個地方使用RouteUrl,一次在我的Controller中,一次在Ajax Jquery中。我所做的是創建一個URL並通過Ajax響應將其發回,然後在我的客戶端窗口中重定向window.location.href = response.redirectUrl。這工作正常,但是當我嘗試在Rediect(url)的Controller中使用相同的Url.RouteUrl值時,它不會在我的url之前追加http:// localhost /。爲什麼它在我的控制器內部工作在JS和NOT in Action方法中。如果我使用Request.Url.Scheme,那麼它的工作原理。這是否是正確的方式? – InTheWorldOfCodingApplications

相關問題