AOP(以MVC中的过滤器为例)

MVC里面的Filter
   public class AOPFilterAttribute : ActionFilterAttribute, IExceptionFilter
    {

        public void OnException(ExceptionContext filterContext)
        {
            throw new System.NotImplementedException();
        }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {

            base.OnActionExecuting(filterContext);
        }

        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            base.OnActionExecuted(filterContext);
        }
    }

在controller里面使用该特性:

     [AOPFilter]
        public JsonResult GetEditModel(string strType)
        {
            var lstRes = new List<List<DragElementProp>>();
            var lstResPage = new List<PageProperty>();

        //.........todo

            return Json(new { lstDataAttr = lstRes, PageAttr = lstResPage, lstJsConnections = lstJsPlumbLines }, JsonRequestBehavior.AllowGet);
        }
调试可知,在执行GetEditModel(string strType)方法之前,会先执行OnActionExecuting()方法,GetEditModel(string strType)之后,又会执行OnActionExecuted()方法。这在我们MVC里面权限验证、错误页导向、日志记录等常用功能都可以方便解决
时间: 2024-12-29 23:30:36

AOP(以MVC中的过滤器为例)的相关文章

MVC中的过滤器

authour: chenboyi updatetime: 2015-05-09 09:30:30 friendly link:   目录: 1,思维导图   2,过滤器种类(图示) 3,全局过滤器   4,ActionFilterAttribute  5,AuthorizeAttribute   6,HandleErrorAttribute 1,思维导图: 2,过滤器种类(图示): 3,全局过滤器: 程序员可以自己定义过滤器,并将其设为全局或者单个类.单个方法上得过滤器,如果要把自定义过滤器设

Unity容器在asp.net mvc中的IOC应用及AOP应用

<asp.net-mvc框架揭秘>一书中,有个示例,是使用unity容器来注入自定义的控制器工厂.代码示例可以自己去下载源码,在这里我就不说了.IOC容器的本质是解耦的实例化接口类,而如何做到解耦就是通过第三方容器来实例化,在这里是unity容器,而不是在项目中实例化接口类.实例化的方法无非就是反射,Emit,表达式树,委托等四个方法.Unity容器的IOC使用主要是三个个方法:Register,Resolver,Dispose.前者注册接口和接口类,后者将接口类的实例化转移到第三方容器中实现

MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法

前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的OnInit()方法,在OnInit()中判断Session中是否有用户登录的信息. /// <summary> /// 公共基类里面干一些公共的事情 /// </summary> public class BasePage : System.Web.UI.Page { //页面生命周

ASP.NET MVC中有关AOP的编程

AOP(Aspect oriented programming)面向切面编程,主要意思是把相同.相似的并且零散的逻辑抽离出来,统一处理,这样不仅维护起来方便,也使得代码更加关注自己本身,清晰明了. 比如我们常见的权限检查,验证登陆,异常处理等都是散乱在系统各个地方,比如管理员在登陆状态才可以添加一个学生信息: public ActionResult AddStudent(Student student) { if (currentUser != null) { StudentDAL.Add(st

.net mvc中AOP 异常捕获后返回自定义的Json

.net mvc中封装了一些特性可以实现AOP,如常用的HandleErrorAttribute,ActionFilterAttribute,AuthorizeAttribute.自定义一个特性,继承这些特性,并重写里面的方法就可以AOP切入到Action中的关注点.本篇文章主要对笔者在使用HandleErrorAttribute的过程中遇到的一个问题进行分享. 我们在action中会用try..catch..进行异常处理,笔者在catch中返回一个json(标示失败).我发现所有的action

.Net Core MVC中过滤器简介

原文:.Net Core MVC中过滤器简介 在.Net Framework MVC 中有四种过滤器,授权过滤器(Authorize).Action 过滤器.结果过滤器(Result).异常过滤器(Exception)四种过滤器.在.Net Core MVC中,有五种过滤器,授权过滤器.Action过滤器.异常过滤器.结果过滤器.资源过滤器,新增了资源过滤器. .Net Core MVC和.Net Framework MVC在基本使用上差别不大,主要的还是框架的差别.其中路由是个很重要的东西,参

MVC中的错误过滤器无法拦截URL路径错误的解决办法

“/”应用程序中的服务器错误. 无法找到资源. 说明: HTTP 404.您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用.请检查以下 URL 并确保其拼写正确. 请求的 URL: /sdf 版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1 //--------------------------------------------------------------------

MVC中的授权过滤器

MVC支持的过滤器类型有四种,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常) 授权过滤器的使用 新建一个类LoginAuthorityAttribute using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace ERPMVC { public class

AspNet MVC中各种上下文理解

0  前言 AspNet MVC中比较重要的上下文,有如下: 核心的上下文有HttpContext(请求上下文),ControllerContext(控制器上下文) 过滤器有关有五个的上下文ActionExecutingContext,ActionExecutedContext,ResultExecutingContext,ResultExecutedContext,ExceptionContext 视图相关的上下文ViewContext 这些上下文之间的关系如下图所示 说明: 1.Contro