Поскольку я новичок в ASP.NET MVC, кто-нибудь может сказать мне разницу между return RedirectToAction() и return View()?
Разница между redirectToAction() и View()
Ответ 1
return View() говорит MVC генерировать HTML для отображения и отправляет его в браузер.
RedirectToAction() говорит ASP.NET MVC ответить перенаправлением браузера на другое действие вместо рендеринга HTML. Браузер получит уведомление о перенаправлении и сделает еще один запрос на новое действие.
Пример...
Допустим, вы создаете форму для сбора и сохранения данных, ваш URL выглядит как SomeEntity/Edit/23. В действии Edit вы сделаете return View(), чтобы отобразить форму с полями ввода для сбора данных.
Для этого примера предположим, что при успешном сохранении данных вы хотите отобразить данные, которые были сохранены. После обработки предоставленных пользователем данных, если вы делаете что-то вроде RedirectToAction("Index"), где Index - это действие, которое будет отображать данные. Браузер получит HTTP 302 (временное перенаправление) для перехода на /SomeEntity/Index/23.
Ответ 2
- Возврат
Viewне создает новые запросы, он просто отображает представление без изменения URL-адресов в адресной строке браузера. - Возврат
RedirectToActionделает новый запрос и URL-адрес в браузере адресная строка обновляется сгенерированным URL-адресом с помощью MVC. - Возврат
Redirectтакже делает новый запрос и URL-адрес в адресе браузера бар обновляется, но вы должны указать полный URL. -
RedirectToRouteперенаправляет на указанный маршрут, определенный в таблица маршрутов.
Между RedirectToAction и Redirect наилучшей практикой является использование RedirectToAction за все, что связано с вашей заявкой действия/контроллеры. Если вы используете Redirect и укажите URL-адрес, вы необходимо изменить эти URL вручную при изменении таблицы маршрутов.
Ответ 3
В качестве дополнения ко всем приведенным выше ответам, если вы используете "Реализация проверки" с использованием аннотации данных, используйте return View() вместо RedirectToAction().
Сообщение о валидации не будет работать с использованием RedirectToAction, так как оно не приведет к недопустимости модели, и ваше сообщение о проверке также не будет отображаться на вашем представлении.
Ответ 4
здесь - самое простое объяснение представления рендеринга в mvc.