Подтвердить что ты не робот

В чем разница между Redirect и RedirectToAction в ASP.NET MVC?

В чем разница между Redirect и RedirectToAction, кроме их возвращаемого типа? Когда мы используем их? Объяснение с любым сценарием реальной жизни мне очень помогло.

Я смотрел на Confusion между Redirect и RedirectToAction, но для меня это похоже на более конкретный ответ на обработку параметра id и возврат правильного представления.

4b9b3361

Ответ 1

RedirectToAction позволяет вам создать URL-адрес перенаправления для конкретного действия/контроллера в вашем приложении, то есть он будет использовать таблицу маршрутов для создания правильного URL-адреса.

Redirect требует, чтобы вы указали полный URL-адрес для перенаправления.

Если у вас есть действие Index на контроллере Home с параметром Id:

  • Вы можете использовать RedirectToAction("Index", "Home", new { id = 5 }), который будет генерировать URL-адрес для вас на основе вашей таблицы маршрутов.

  • Вы можете использовать Redirect, но должны сами создать URL-адрес, поэтому вы передаете Redirect("/Home/Index/5") или, тем не менее, используете свою таблицу маршрутов.

  • Вы не можете перенаправить на google.com (внешний URL) с помощью RedirectToAction, вы должны использовать Redirect.

RedirectToAction предназначен для выполнения 302 перенаправлений в вашем приложении и дает вам более простой способ работы с вашей таблицей маршрутов.

Redirect предназначен для 302 перенаправления ко всем остальным, в частности внешним URL-адресам, но вы все равно можете перенаправлять в своем приложении, вам просто нужно самостоятельно создать URL-адреса.

Рекомендации: Используйте RedirectToAction для любых действий с вашими действиями/контроллерами приложений. Если вы используете Redirect и укажите URL-адрес, вам нужно будет изменить эти URL-адреса вручную, когда изменится таблица маршрутов.