Подтвердить что ты не робот

Разница между OnActionExecuted и OnResultExecuting

В чем разница между OnActionExecuted и OnResultExecuting? Они оба увольняются сразу после того, как действие было обработано или что-то происходит между этими двумя методами. Подобно инициализации View Engine,...

4b9b3361

Ответ 1

У них другой контекст.

OnActionExecuted имеет ActionExecutedContext, в котором вы можете просмотреть результат, полученный в результате действия. Вы также можете увидеть, было ли какое-либо действие обнаружено Исключение и посмотреть, было ли обработано исключение.

OnResultExecuting имеет ResultExecutingContext. Этот метод вызывается непосредственно перед вызовом ActionResult. Вы можете проверить результат метода и, возможно, отменить выполнение результата. Обычно это приводит к пустой ошибке с кодом состояния 200. (вы не можете сделать это в методе OnActionExecuted).

Ответ 3

Они вызываются друг за другом.

Не может быть никакой инициализации, так как ActionResult, который вы выполняете, может не отображаться. View - ActionResults могут делать все, что они выбирают: возвращать JSON, возвращать файл, вызывать перенаправление и т.д.