Я хочу, чтобы пользовательская страница ошибок отображалась для 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.
Что я должен сделать, чтобы обработать другие ошибки?