RedirectToAction перенаправляет с параметрами запроса?
-
28-10-2019 - |
Вопрос
Я работаю над приложением ASP.NET MVC и наткнулся на странную вещь.
У меня есть два таких действия контроллера:
родовое слово Сначала я вызываю действие Review
с параметром null, это вызовет веб-страницу со списком элементов.Элементы связаны обратно с первым действием Review с установленным идентификатором.
После предоставления идентификатора действию проверки для этого элемента будет возвращена веб-страница редактирования.При нажатии кнопки «Отправить» после некоторых изменений мы перейдем ко второму действию «Обзор» (публикации).Здесь элемент будет сохранен.
Пока все в порядке.
Теперь, в последнем действии проверки (записи) я получил следующий код в конце:
родовое словоЭто снова запустит первое действие "Просмотр". Проблема в том, что оно предоставит предыдущий идентификатор?Я думал, что RedirectToAction не будет предоставлять никаких параметров?
Решение
Я думал, что RedirectToAction не будет предоставлять никаких параметров?
Вы неправильно поняли.Параметры, присутствующие в состоянии модели, автоматически перенаправляются, если целевой URL-адрес содержит параметр маршрута с тем же именем.В этом случае у вас есть параметр id
, который публикуется (возможно, как часть поля ввода или часть URL-адреса) и когда вы перенаправляете обратно к исходному действию Index, потому что определения ваших маршрутов имеют токен id
в конце RedirectToAction
метод заполнит его.
В качестве обходного пути, чтобы избежать такого поведения, вы можете явно указать, что параметр id
не должен отправляться при перенаправлении: