2013-03-19 3 views
2

내 프로젝트에 다른 영역이 있습니다. 오류 (사용자 정의) 처리를 위해 ExceptionFilterAttribute을 추가했습니다. ExceptionFilterAttribute이 작동 그래서 나는, 내가 특정 지역에이 속성을 등록 할 수동으로 모든 컨트롤러에이 속성을 추가하지 않는 것입니다 방법가 없습니다 그 지역에있는 모든 컨트롤러에 자동으로하나의 특정 MVC 영역으로 ExceptionFilterAttribute 제한

어떤 제안

답변

2

영역에 액션 필터를 적용합니다. 사용자 지정 예외 필터 속성을 작성하고 다음 글로벌 액션 필터로 적용 할 수 :

public class AdminAreaHandleErrorAttribute: HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext filterContext) 
    { 
     var area = filterContext.RouteData.Values["area"] as string; 
     if (string.Equals(area, "Admin", StringComparison.InvariantCultureIgnoreCase)) 
     { 
      base.OnException(filterContext); 
     } 
    } 
} 

다음 글로벌 필터로 등록 :

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new AdminAreaHandleError()); 
}