Я не могу получить атрибут [HandleError]
в MVC 5 для работы.Как заставить атрибут HandleError работать без настройки web.config (customErrors)?
У меня есть этот контроллер
[HandleError]
public class HomeController : Controller
{
public ActionResult WelcomePage()
{
throw new Exception("Oops!");
return View();
}
}
Что дает желтый экран смерти.
Если добавить в web.config
<system.web>
<customErrors mode="On" />
</system.web>
это работает. Но если я удалю [HandleError]
, он все равно работает, поэтому он устанавливает в web.config более высокий presedense, я думаю.
Но не можете ли вы использовать только [HandleError]
, не полагаясь на некоторые настройки web.config?
Так что люди добавить атрибут HandleError или не? Я имею в виду ... Я все еще попадаю на страницу с ошибкой, без [HandleError]. Я ожидал бы получить что-то дополнительное, но я могу ошибаться? – radbyx
О, ладно, я думаю, что понял. Я должен установить «customErrors» в On, как вы задокументировали. И причина, по которой это работает без [HandleError], - по дизайну. Но если бы я хотел указать его как «[HandleError (Exception = typeof (DbException), View =« DatabaseError »)]« Мне нужно написать атрибут. – radbyx
Фильтр HandleError будет обрабатывать ошибки, возникающие на уровне контроллера. Существует еще один способ обработки ошибок контроллера, кроме использования фильтра HandleError, который должен переопределить функцию на контроллере, который вызывается (OnException). – Ala