Проблема :Когда я использую свойство Order
атрибута HandleError
, сначала применяется наивысший порядковый номер, а не самый низкий.
Подробности
] Я хочу настроить свой контроллер для обработки исключений следующим образом:
CustomException
, используйте представление «CustomError». Используя шаблон проекта MVC по умолчанию, я сделал следующее:
HandleErrorAttribute
из глобальных фильтров. .config
. Затем я добавляю эти атрибуты к классу HomeController
:
[HandleError(ExceptionType = typeof(Exception), View = "Error")]
[HandleError(ExceptionType = typeof(CustomException), View = "CustomError")]
И это отлично работает - если выбрасывается CustomException
, отображается "CustomError" Показано; если выбрасывается Exception
, отображается представление «Ошибка».
Однако я думал, что свойство Order
в атрибуте HandleError
сделает ситуацию еще лучше. явный. Со страницы MSDN :
Чем больше целочисленное значение, тем ниже приоритет фильтра есть.
Исходя из этого, я мог подумать, что следующий код вызовет отображение представления «Ошибка» при любых обстоятельствах:
[HandleError(Order = 1, ExceptionType = typeof(Exception), View = "Error")]
[HandleError(Order = 2, ExceptionType = typeof(CustomException), View = "CustomError")]
Но это не так; это вызывает такое же поведение, как если бы свойство Order
не было указано. Если я поменяю местами заказы, этот вызовет отображение представления «Ошибка», даже если было сгенерировано CustomException
.
По сути, фактический приоритет порядка кажется точно таким же противоположность документации. Я что-то делаю не так или это ошибка?