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  

    不同过滤器的执行顺序:

  • 相关阅读:
    java常用IO流集合用法模板
    java根据概率生成数字
    从浏览器直接转跳到APP具体页面---(魔窗)MagicWindow使用教程
    java开源即时通讯软件服务端openfire源码构建
    还在繁琐的敲MVP接口和实现类吗,教你一秒搞定。
    手把手带你走进MVP +Dagger2 + DataBinding+ Rxjava+Retrofit 的世界
    poj3666(DP+离散化)
    poj3616(LIS简单变式)
    hdoj2859(矩阵DP)
    poj1088(记忆化搜索入门题)
  • 原文地址:https://www.cnblogs.com/ck168/p/5531016.html
Copyright © 2011-2022 走看看