В чем разница между OnActionExecuted и OnResultExecuting? Они оба увольняются сразу после того, как действие было обработано или что-то происходит между этими двумя методами. Подобно инициализации View Engine,...
Разница между OnActionExecuted и OnResultExecuting
Ответ 1
У них другой контекст.
OnActionExecuted
имеет ActionExecutedContext, в котором вы можете просмотреть результат, полученный в результате действия. Вы также можете увидеть, было ли какое-либо действие обнаружено Исключение и посмотреть, было ли обработано исключение.
OnResultExecuting
имеет ResultExecutingContext. Этот метод вызывается непосредственно перед вызовом ActionResult
. Вы можете проверить результат метода и, возможно, отменить выполнение результата. Обычно это приводит к пустой ошибке с кодом состояния 200. (вы не можете сделать это в методе OnActionExecuted).
Ответ 2
От ActionFilterAttribute.OnResultExecuting Method
Вызывается инфраструктурой ASP.NET MVC до. Результат выполнения.
Из ActionFilterAttribute.OnActionExecuted Method
Вызывается инфраструктурой MVC ASP.NET после.
Ответ 3
Они вызываются друг за другом.
Не может быть никакой инициализации, так как ActionResult, который вы выполняете, может не отображаться. View - ActionResults могут делать все, что они выбирают: возвращать JSON, возвращать файл, вызывать перенаправление и т.д.