ASP.NET MVC 4細かくかんでゆっくりと飲み込む---(6)グローバルフィルタ
Asp.Net MVC 4のグローバルフィルタは、プロジェクト全体をグローバルに監視できます.
新しいMVC 4プロジェクトをglobalで作成できます.asaxファイルには次のコードが表示されます:FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
登録グローバルフィルタを示す.
GlobalFiltersはグローバルフィルタの集合であり、addメソッドでフィルタを追加することができ、デフォルトではHandleErrorAttributeフィルタが集合に追加されます.
次に、カスタムフィルタを作成し、グローバルフィルタセットに追加します.
1.カスタムフィルタの作成
カスタムフィルタを作成ActionFilterAttributeクラスを継承します.CustomerFilterAttributeという名前のフィルタを作成し、actionに時間を記録します.
コードは次のとおりです.
2.グローバルフィルタの登録
フィルタの作成が完了すると、このフィルタをグローバルフィルタに追加し、filtersを使用します.Add(new CustomerFilterAttribute());方法、
コードは次のとおりです.
次に、プロジェクトの各ページを実行します.ページの出力時間とcontroller名が表示されます.効果図は次のとおりです.
新しいMVC 4プロジェクトをglobalで作成できます.asaxファイルには次のコードが表示されます:FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
登録グローバルフィルタを示す.
GlobalFiltersはグローバルフィルタの集合であり、addメソッドでフィルタを追加することができ、デフォルトではHandleErrorAttributeフィルタが集合に追加されます.
次に、カスタムフィルタを作成し、グローバルフィルタセットに追加します.
1.カスタムフィルタの作成
カスタムフィルタを作成ActionFilterAttributeクラスを継承します.CustomerFilterAttributeという名前のフィルタを作成し、actionに時間を記録します.
コードは次のとおりです.
public class CustomerFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
filterContext.HttpContext.Response.Write(" :"+DateTime.Now.ToString()+"
");
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var controllerName = filterContext.RouteData.Values["controller"].ToString();
var actionName = filterContext.RouteData.Values["action"].ToString();
filterContext.HttpContext.Response.Write(" :" + DateTime.Now.ToString() + "
");
filterContext.HttpContext.Response.Write("controller:" +controllerName+",action:"+actionName);
}
}
2.グローバルフィルタの登録
フィルタの作成が完了すると、このフィルタをグローバルフィルタに追加し、filtersを使用します.Add(new CustomerFilterAttribute());方法、
コードは次のとおりです.
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new CustomerFilterAttribute());
}
}
次に、プロジェクトの各ページを実行します.ページの出力時間とcontroller名が表示されます.効果図は次のとおりです.