zoukankan      html  css  js  c++  java
  • 过滤器

    .net core 过滤器之Filter

    梁身定做 2018-06-18 21:48:34 11028 收藏 5
    分类专栏: .net core跨平台技术 文章标签: .net core aop 过滤器
    版权
      当我们进行项目开发时,往往在开发过程中需要临时加入一些常用功能性代码,如身份验证、日志记录、异常获取等功能。如果每个方法中都加入这些功能性代码的话,无疑使项目显得过于臃肿,代码繁杂。这时候就要加入过滤器了。.net framework及.net core中都支持非常简单的过滤器操作:Filter。它能在函数执行前或执行后切入函数。而不需要修改原来的代码,使项目更加清晰。

      下面讲解Filter在.net core MVC中的用法。

    首先,新建.net core mvc web应用程序,然后加入MyFilter类,继承ActionFilterAttribute

    public class MyFilter : ActionFilterAttribute
    {
    public string Message { get; set; }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
    base.OnActionExecuting(filterContext);
    filterContext.HttpContext.Response.Write("<br />" + "执行OnActionExecuting:" + Message + "<br />");
    }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
    base.OnActionExecuted(filterContext);
    filterContext.HttpContext.Response.Write("<br />"+ "执行OnActionExecuted:" + Message + "<br />");
    }

    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
    base.OnResultExecuting(filterContext);
    filterContext.HttpContext.Response.Write("<br />" + "执行OnResultExecuting:" + Message + "<br />");
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
    base.OnResultExecuted(filterContext);
    filterContext.HttpContext.Response.Write("<br />" + "执行OnResultExecuted:" + Message + "<br />");
    }
    }
    然后在Home控制器中的Action中加入过滤器
    public class HomeController : Controller
    {
    [MyFilter(Message ="首页")]
    public ActionResult Index()
    {
    return Content("<br />" + "执行Index中的内容"+ "<br />");
    }

    [MyFilter(Message = "关于页面")]
    public ActionResult About()
    {
    return Content("<br />" + "执行About中的内容" + "<br />");
    }
    }
    这时候运行项目:/Home/Index,打印出如下内容:
    ————————————————

    由此可以发现:执行循序是:OnActionExecuting>OnActionExecuted>OnResultExecuting>Action>OnResultExecuted

    (Action执行之前执行OnActionExecuting,Action执行之后执行OnActionExecuted,Action返回之前执行OnResultExecuting,Action返回之后执行OnResultExecuted)

    原文链接:https://blog.csdn.net/u010924260/article/details/80517259

  • 相关阅读:
    Jenkins+Ansible+Gitlab自动化部署三剑客(四)--Jenkins Linux shell集成
    Jenkins+Ansible+Gitlab自动化部署三剑客(三)--Jenkins
    腾讯云从业者线上课程(一)--云计算技术架构
    腾讯云从业者线上课程(一)--云计算发展历史
    nmcli 静态方式添加IP地址
    nmcli
    systemctl 控制单元
    ansible组件 Ad-Hoc
    ansible 定义主机用户和密码
    ansible 主机清单 /etc/ansible/hosts
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14999274.html
Copyright © 2011-2022 走看看