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

  • 相关阅读:
    18个Java开源CMS系统一览
    冒泡排序
    数据挖掘十大经典算法
    开源Java CMS建站程序推荐
    Oracle
    Oracle Procedure returning Ref Cursor in Entity Framework 4
    Field_II
    SharePoint Video Library
    ORACLE 导入dmp文件
    System.Diagnostics.Process.Start()。它的作用是调用外部的命令
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14999274.html
Copyright © 2011-2022 走看看