在我的项目中,我有不同的区域。我添加了一个ExceptionFilterAttribute来处理错误(自定义)。我不想手动将此属性添加到所有控制器,我想将此属性注册到特定区域,因此 ExceptionFilterAttribute 将自动工作该区域中的所有控制器
有什么建议么
在我的项目中,我有不同的区域。我添加了一个ExceptionFilterAttribute来处理错误(自定义)。我不想手动将此属性添加到所有控制器,我想将此属性注册到特定区域,因此 ExceptionFilterAttribute 将自动工作该区域中的所有控制器
有什么建议么
无法将操作过滤器应用于区域。您可以编写自定义异常过滤器属性,然后将其应用为全局操作过滤器:
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());
}