2010-03-18 2 views
12

작업에 두 개의 사용자 지정 ActionFilters가 있습니다.ASP.NET MVC ActionFilter 중지 계속

첫 번째 actionfilters에는 조건이 충족되지 않은 경우 (클래식 인증) 리디렉션이 수행됩니다. 그리고 다른 조건에서 다른 조건이 충족되지 않으면 (예 : 역할 검사) 리디렉션이 수행됩니다.

하지만 첫 번째 필터가 충족되지 않으면 두 번째 action 필터로 계속 진행하고 싶지 않습니다. 이 작업을 수행하는 방법?

+0

비슷한 질문에 대한이 [대답] (https://stackoverflow.com/a/9842910/2460971)이 더 자세히 설명되어 있습니다. – numaroth

답변

21

filterContext.Result 속성을 null이 아닌 값으로 설정하면 나중 필터가 중지됩니다. 따라서 첫 번째 필터가 filterContext.Result = new RedirectResult(...)으로 설정되면 두 번째 필터 및 동작 방법이 실행되지 않습니다. 이것이 기본 제공 [Authorization] 필터의 작동 방식입니다.

+7

방금 ​​MVC2 프로젝트로 돌아 가야했기 때문에 누구나 여전히 필요로하는 경우이를 남겨 둡니다. Action에'return null '의 일반적인 기능을 원하면'filterContext.Result = new EmptyResult();' –