2016-01-23 5 views
0

Есть ли способ поддерживать формат моей ссылки, как определено в RouteConfig.cs сопоставлениях при вызове метода RedirectToAction?return RedirectToAction (...) prettier url

бывший [только для испытания]:

У меня есть этот маршрут:

routes.MapRoute(
"Token Verification", 
"Registration/TokenVerification/{ConfernceId}/{TokenType}/{TokenId}/{Email}", 
new{ 
    controller="Registration", 
    action="TokenVerification", 
    ConfernceId= 0, 
    TokenType='\0', 
    TokenId="", 
    Email="" 
} 
); 

я могу назвать эту ссылку и мое действие, если перенаправляется правильно:

http://localhost:49619/Registration/TokenVerification/2/R/asdasdasd/[email protected]

Но если бы я назвал RedirectToAction, он будет генерировать следующие url

http://localhost:49619/Registration/TokenVerification?ConfernceId=2&TokenType=R&Email=someone%40somewhere.com

Он работает также, но это не очень вообще!

Любые предложения?

+1

TokenId и электронной почты выглядят по желанию, потому что вы установив их в string.Empty. Это значения пути, поэтому они должны иметь значение для работы маршрутизации. –

+0

@EmmaMiddlebrook, спасибо, это была проблема, с которой я столкнулся с маршрутами – simsim

ответ

1

Используйте RedirectToRoute (from MSDN) для генерации URL-адресов, которые находятся в формате указанных маршрутов.

return RedirectToRoute("Token Verification", new 
     { 
      ConfernceId = 0, 
      TokenType = "0", 
      TokenId = "0", 
      Email = "0" 
     }); 

Если вы хотите сгенерировать ссылки, а затем установите флажок ниже perocess. использование Url.RouteUrl (проверка MSDN ресурс). Скажем, например, -

@Url.RouteUrl("DefaultApi", new { httproute=true, controller="Albums", id=3}) 

сгенерирует /api/Albums/3

В вашем случае, это должно быть -

@Url.RouteUrl("Token Verification", new 
{ 
    controller = "Registration", 
    action = "TokenVerification", 
    ConfernceId = 0, 
    TokenType = "0", 
    TokenId = "0", 
    Email = "0" 
}) 

И он будет генерировать - /Registration/TokenVerification/0/0/0/0

+0

, кажется логичным решением, но я не могу заставить его работать, я продолжаю получать «Нет маршрута в таблице маршрутов, соответствующих заданным значениям». Я искал аналогичные проблемы в Интернете, но до сих пор не могут его решить. Я передаю те же типы и тот же порядок параметров, что и в определенном маршруте, как предлагается [здесь] (http://stackoverflow.com/questions/5690/mvc-preview-4-no-route-in-the-route-table -matches-заместитель поставляются-значения) – simsim

Смежные вопросы