zoukankan      html  css  js  c++  java
  • ASP.NET MVC 拦截器IResultFilter

    在ASP.NET MVC中,有一个Result拦截器,实现ResultFilter需要继承一个类(System.Web.Mvc.FilterAttribute)和实现一个类(System.Web.Mvc.IResultFilter),

    System.Web.Mvc.IResultFilter接口有两个方法:

    1、OnResultExecuting方法在操作结果执行之前调用。

    2、OnResultExecuted方法在在操作结果执行后调用。

    下面是我测试的代码:

    1、先新建一个ResultFillterAttribute类:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 
     6 namespace AttributeDemo.Common
     7 {
     8     /// <summary>
     9     /// Result拦截器
    10     /// </summary>
    11     public class ResultFillterAttribute : System.Web.Mvc.FilterAttribute, System.Web.Mvc.IResultFilter
    12     {
    13 
    14         #region 执行完action后调用
    15         /// <summary>
    16         /// 执行完action后调用
    17         /// </summary>
    18         /// <param name="filterContext"></param>
    19         void System.Web.Mvc.IResultFilter.OnResultExecuted(System.Web.Mvc.ResultExecutedContext filterContext)
    20         {
    21 
    22         } 
    23         #endregion
    24 
    25         #region 在操作结果执行之前调用
    26         /// <summary>
    27         /// 在操作结果执行之前调用。
    28         /// </summary>
    29         /// <param name="filterContext"></param>
    30         void System.Web.Mvc.IResultFilter.OnResultExecuting(System.Web.Mvc.ResultExecutingContext filterContext)
    31         {
    32 
    33         } 
    34         #endregion
    35 
    36 
    37     }
    38 }

    2、新建一个ResultFillterTestController控制器类,在控制器或者action写属性AttributeDemo.Common.ResultFillter,即可实现对控制器或action的结果进行拦截:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Mvc;
     6 
     7 namespace AttributeDemo.Controllers
     8 {
     9     /// <summary>
    10     /// 测试Result拦截器
    11     /// </summary>
    12     //[AttributeDemo.Common.ResultFillter]
    13     public class ResultFillterTestController : Controller
    14     {
    15         //
    16         // GET: /ResultFillterTest/
    17 
    18         [AttributeDemo.Common.ResultFillter]
    19         public ActionResult TestResultFillter()
    20         {
    21 
    22             return View();
    23         }
    24 
    25 
    26         public ActionResult Index()
    27         {
    28             return View();
    29         }
    30 
    31     }
    32 }
  • 相关阅读:
    免费公共dns推荐
    vm10 mac 序列号
    sublimetext 序列号
    操作系统第6次实验报告:使用信号量解决进程互斥访问
    操作系统第5次实验报告:内存管理
    操作系统第4次实验报告:文件系统
    操作系统第3次实验报告:管道
    操作系统第2次实验报告:创建进程
    OS第1次实验报告:熟悉使用Linux命令和剖析ps命令
    第四次实验报告:使用Packet Tracer理解RIP路由协议
  • 原文地址:https://www.cnblogs.com/linJie1930906722/p/5770792.html
Copyright © 2011-2022 走看看