Я создаю приложение MVC 4. Обработка разрешений и исключений выполняется с помощью Filters.
В фильтре я могу либо перенаправить пользователя на страницу с ошибкой, используя RedirectToRouteResult
либо вернуться к просмотру моей страницы ошибок с помощью ViewResult
.
Какой вариант лучше на практике и почему?
1.Return View не создает новые запросы, он просто отображает представление без изменения URL-адресов в адресной строке браузера.
2. Возврат RedirectToAction делает новые запросы и URL-адрес в адресной строке браузера обновляется сгенерированным URL-адресом MVC.
3.Return Redirect также обновляет новые запросы и URL-адрес в адресной строке браузера, но вы должны указать полный URL-адрес для перенаправления
4.Between RedirectToAction и Redirect лучше всего использовать RedirectToAction для любых действий с вашими действиями/контроллерами приложений. Если вы используете перенаправление и укажите URL-адрес, вам нужно будет изменить эти URL вручную при изменении таблицы маршрутов.
5.RedirectToRoute перенаправляет на определенный маршрут, определенный в таблице маршрута.
Это зависит от того, существует ли какая-либо логика в действии с ошибкой, которая заполняет модель представления (например, настройку кода состояния http) или у вас есть только статический вид. Конечно, вы могли бы переместить эту логику в фильтр, но это не позволит вам перенаправлять из другого действия, которое не использует тот же фильтр.
Если вы хотите переместить страницу с ошибкой со статическими данными с ограниченными сообщениями, тогда используйте ViewResult
else, используя RedirectToRouteResult
в этом вы можете использовать, как хотите.