码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2014-12-23 11:52:36      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

  .net mvc中封装了一些特性可以实现AOP,如常用的HandleErrorAttribute,ActionFilterAttribute,AuthorizeAttribute。自定义一个特性,继承这些特性,并重写里面的方法就可以AOP切入到Action中的关注点。本篇文章主要对笔者在使用HandleErrorAttribute的过程中遇到的一个问题进行分享。

  我们在action中会用try..catch..进行异常处理,笔者在catch中返回一个json(标示失败)。我发现所有的action在catch中返回值都一样,所以就想到使用HandleErrorAttribute进行异常捕获,然后返回自定义的json。但是发现我在OnException方法中已经设置了filterContext.Result为我想要返回的值了,但是运行时还是报错,并没有返回我处理后返回的json。如果你也遇到这样的问题,添上一句话就OK了,那就是:filterContext.ExceptionHandled = true;

  这是为什么呢?可能你看到这里已经恍然大悟了,那就是你要把ExceptionHandled这个表示设置为true,意思也就是我已经处理过了这个异常。这时候,浏览器一看,哦~已经处理了异常了,就输出你要的json了,如果你不设置成true,浏览器一看,还是没有Handed的异常,就给你报出来了。

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

标签:

原文地址:http://www.cnblogs.com/dreamofei/p/4179588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!