2013-06-27 3 views
1

Я создаю URL-адрес внутри моего метода действий MVC4.UrlHelper.Action не генерирует правильный маршрут

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

Теперь проблема заключается в добавлении Id2 в качестве параметра запроса. У меня есть конкретный маршрут определяется в RouteConfig.cs, который является как контроллер/действие/Id/Id2

Как я заставить это генерировать конкретные маршрутные URL-адрес

ответ

4

Если у вас есть маршрут создан в вашем RouteConfig.cs , вы можете назвать его по имени с помощью RouteUrl()

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

Как я могу указать контроллер и имя действия в Url.RouteUrl? – InTheWorldOfCodingApplications

+0

rectUrl = Url.RouteUrl ("YourRouteName", новый {id = someVariable, id2 = someVariable2, controller = "MyController", action = "MyAction"}); –

+0

Я использую RouteUrl в двух местах, один раз внутри моего контроллера и один раз в Ajax JQuery. То, что я делаю, это создание URL-адреса и отправка его обратно через ответ Ajax, а затем перенаправление в моем клиенте i-e window.location.href = response.redirectUrl. Это прекрасно работает, но когда я пытаюсь использовать то же значение Url.RouteUrl внутри моего контроллера с Rediect (url), он не добавляет http: // localhost/до моего url. Почему его работает в методе JS и NOT in Action внутри моего контроллера. Если я использую Request.Url.Scheme, тогда он работает. Правильно ли это? – InTheWorldOfCodingApplications