-1

Я работаю над образцом приложения, где у меня есть регистр и подробные действия. Я хочу перенаправить на подробный вид после того, как зарегистрировал новую команду.MVC перенаправить с использованием значений маршрута вместо строки запроса

Почтовый код Regsiter выглядит следующим образом;

[HttpPost] 
public async Task<ActionResult> Register(TeamEditorVm teamRegisterVm) 
{ 
    if (ModelState.IsValid) 
    { 
     var teamDetailVm = await Managers.TeamManager.CreateAsync(teamRegisterVm); 
     return RedirectToAction("Details", new { id = teamDetailVm.Id }); 
    } 

    return View(teamRegisterVm); 
} 

Есть ли способ заставить RedirectToAction("Details", new { id = teamDetailVm.Id }); использовать значение маршрута для URL как

hxxps://test.com/team/detail/1 

вместо строки запроса?

hxxps://test.com/team/detail?id=1 
+3

Он будет генерировать '../ team/details/1', если вы используете стандартную маршрутизацию. Покажите свои текущие определения маршрутов и подпись метода 'Details()' –

+0

Спасибо за эту идею. У меня есть весь маршрут, и я добавил его прямо перед маршрутом по умолчанию, и это заставляет его не распознавать этот шаблон (контроллер/действие/идентификатор). Я переключил его, чтобы сначала добавить маршрут по умолчанию, затем маршрут «поймать все», и он начал работать. Благодаря! –

ответ

0
RedirectToAction("Details", new { id = teamDetailVm.Id }); 

Это перенаправит вас подробности действия, и если ваш маршрутизации содержит идентификатор в качестве параметра по умолчанию, то он покажет вам

hxxps://test.com/team/detail/1 

и не в качестве параметра запроса. Я просто тестировал его в MVC5, и он работал на меня. Проверьте свою маршрутизацию.

+0

Оказывается, мои маршруты мы добавили в неправильном порядке. –