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

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: 小  |  中  |  大  |  超大  

.net mvc中AOP 异常捕获后返回自定义的Json.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的异常,就给你报出来了。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航