У меня 2 фильтров действий «ActionFilter1» & «ActionFilter2,Почему «OnActionExecuted» выполняется в обратном порядке?
public class ActionFilter1 : FilterAttribute, IActionFilter
{
public void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext.Current.Application["Order"] += "Action 1: OnActionExecuting <br/>";
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
HttpContext.Current.Application["Order"] += "Action 1: OnActionExecuted <br/>";
}
}
public class ActionFilter2 : FilterAttribute, IActionFilter
{
public void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext.Current.Application["Order"] += "Action 2: OnActionExecuting <br/>";
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
HttpContext.Current.Application["Order"] += "Action 2: OnActionExecuted <br/>";
}
}
я применил оба фильтра на методе действий контроллера с„порядка“,
[ActionFilter1(Order = 1)]
[ActionFilter2(Order = 2)]
public ActionResult Index()
{
return View();
}
В то время как страницы выполняется в браузере, я есть ниже выхода фильтров действий, исполняющих,
Действие 1: OnActionExecuting
A фикция 2: OnActionExecuting
Действие 2: OnActionExecuted
Действие 1: OnActionExecuted
Вопрос - Почему "OnActionExecuted" выполнить в обратном порядке, в то время как "OnActionExecuting" заказ правильно, как я поставляется в атрибуте?
Thanks,