私のプロジェクトでは、さまざまな領域があります。エラー(カスタム)を処理するためのExceptionFilterAttributeを1つ追加しました。この属性をすべてのコントローラーに手動で追加したくない、この属性を特定のエリアに登録したいので、ExceptionFilterAttributeはそのエリアのすべてのコントローラーで自動的に機能します
助言がありますか
私のプロジェクトでは、さまざまな領域があります。エラー(カスタム)を処理するためのExceptionFilterAttributeを1つ追加しました。この属性をすべてのコントローラーに手動で追加したくない、この属性を特定のエリアに登録したいので、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());
}