zoukankan      html  css  js  c++  java
  • Asp.net MVC 之过滤器

    整理一下MVC中的几种过滤器,以及每种过滤器是干什么用的

    四种过滤器

    1、AuthorizationFilter(授权过滤器)

    2、ActionFilter(方法过滤器)

    3、ResultFilter (结果or内容过滤器)

    4、ExceptionFilter(异常处理过滤器)

    用途:

    1、AuthorizationFilter(授权过滤器) :用于用户登录的时候身份验证。

    2、ActionFilter(方法过滤器)    :用于执行的Action需要生成记录或者缓存数据时。

    3、ResultFilter                :在执行ActionResult的前后被执行,在View被显示到浏览器之前可以执行一些逻辑运算,或修改ViewResult的输出结果。

    4、ExceptionFilter(异常处理过滤器):在Action执行之前或之后或者ActionResult执行之前或之后被执行。在执行中发生异常时,可以使用此Filter指向其它页面来显示错误信息。

    几个系统常用的Filter过滤器

    1、AcceptVerbs

    规定页面的访问形式,如

            [AcceptVerbs(HttpVerbs.Post)]
             public ActionResult Example(){
                 return View();
             } 

    页面只能以Post形式访问,即表单提交。

    2、ActionName

    规定Action的名称。

    应用场景:如果不想用方法名做为Action名,或Action名为关键字的话,如

            [ActionName("class")]
             public ActionResult Example(){
                 return View();
             } 

    3、NonAction

    当前方法仅是普通方法不解析为Action

    4、OutputCache

    为Action添加缓存

           [OutputCache(Duration = 60, VaryByParam = "*")]
            public ActionResult Example()
            {
                return View();
            }

    5、ValidateInput

    该Action可以接受Html等危险代码(ASP.NET MVC在aspx中设置<%@ Page 的属性无法完成等同任务。)

            [ValidateInput(false)]
            public ActionResult Example()
            {
                return View();
            }

    6、ValidateAntiForgeryTokenAttribute

    用于验证服务器篡改。

            [ValidateAntiForgeryToken]
            public ActionResult Example()
            {
                return View();
            }

    它们分别继承的接口为:

    IAuthorizationFilter 、 IActionFilter 、 IResultFilter 、 IExceptionFilter  另外 这个需要注意一下:HandleErrorAttribute  以及  ActionFilterAttribute  

    不同过滤器的执行顺序:

  • 相关阅读:
    FPGA quartus开发中常见的错误处理
    verilog中wire与reg类型的区别
    VC++6.0中ClassView中类消失 解决方案[转自网络]
    C++ 和 MFC的学习
    最近单片机编程中的心得
    #ifdef __cplusplus extern "C" { #endif”的定义的含义
    ES6字符串拼接新方法-模板字符串表达式
    JavaScript事件参数对象event
    JavaScript offset家族
    详解JavaScript中的replace()函数
  • 原文地址:https://www.cnblogs.com/ck168/p/5531016.html
Copyright © 2011-2022 走看看