Я хочу создать страницу пользовательских ошибок для 500, 404 и 403. Вот что я сделал:
-
Включить пользовательские ошибки в файле web.config следующим образом:
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml"> <error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml" /> <error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml" /> </customErrors>
-
Зарегистрировано
HandleErrorAttribute
как глобальный фильтр действий в классеFilterConfig
следующим образом:public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); }
-
Создал пользовательскую страницу ошибок для каждого из приведенных выше сообщений. Значение по умолчанию для 500 уже было доступно из коробки.
-
Объявлено в каждом пользовательском представлении страницы ошибки, что модель для страницы
System.Web.Mvc.HandleErrorInfo
В течение 500 страниц отображается страница пользовательской ошибки. Для других это не так.
Есть ли что-то, что мне не хватает?
Похоже, что это не все, что нужно для отображения пользовательских ошибок, когда я читаю код в методе OnException
класса HandleErrorAttribute
, и он обрабатывает только 500.
Что мне нужно сделать для обработки других ошибок?