ASP.NET MVC 4細かくかんでゆっくりと飲み込む---(6)グローバルフィルタ

2001 ワード

Asp.Net MVC 4のグローバルフィルタは、プロジェクト全体をグローバルに監視できます.
新しい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名が表示されます.効果図は次のとおりです.