如何在Ajax请求上实现HandleError过滤器?

时间:2009-06-16 05:39:52

标签: asp.net-mvc ajax

当从Ajax请求调用的操作中发生异常时,默认的HandleError过滤器无法正常工作。有人可以帮我解决吗?

2 个答案:

答案 0 :(得分:1)

您还可以覆盖控制器中的OnException方法以捕获所有未处理的异常,并在出现错误时返回自定义视图或JSON / XML。

    protected override void OnException(ExceptionContext filterContext) {
        filterContext.ExceptionHandled = true;
        filterContext.Result = this.Json(new {
            result = "error",
            details = filterContext.Exception.GetType().Name + ": " + filterContext.Exception.Message
        });
    }

有关返回自定义视图的详情,请参阅此帖子:http://geekswithblogs.net/SanjayU/archive/2009/11/09/error-handling-in-asp.net-mvc-1-part-2-of-2.aspx

答案 1 :(得分:0)

我这样做:在为ajax请求提供服务的操作中,我捕获所有可能的错误并返回一个带有出现错误的JSon对象。因此,在此操作代码中编写try..catch块以获取所有可能的错误并在必要时记录它们的想法非常简单。