4

OnActionExecuted 메서드가 구현 된 ActionFilterAttribute를 만들었습니다. 즉, Action 메서드 다음에 실행됩니다. 그러나 어떤 상황에서는 OnActionExecuted를 실행하지 않기를 원합니다.OnActionExecuted 실행 건너 뛰기

Action 메서드에서 ActionFilter가 실행되지 않도록하려면 어떻게해야합니까?

RouteData.Values.Add("CancelActionFilter", true); 

그리고 ActionFilter.OnActionExecuted()에

가 :

if (filterContext.RouteData.Values["CancelActionFilter"] != null) 
{ 
    return; 
} 

하지만 그 존재할 수있는 생각의 조치 방법에

: 지금은

,이를 만들었습니다 보다 우아한 접근법.

+1

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

3

OnActionExecuted는 ControllerActionInvoker 클래스의 InvokeActionMethodFilter 메서드 내에서 호출됩니다.

이 메서드 내부에는 실행 된 액션을 막을 수있는 방법이 없습니다. 나는 네가 좋은 해결책이라고 생각한다.

Code of ControllerActionInvoker class

+0

고마워, 잘 알고있어! –