在DataTables.NET上显示服务器端异常消息

时间:2015-11-26 13:57:09

标签: ajax exception-handling datatables

我正在开发一个MVC应用程序,它在基本控制器类中处理授权和登录信息,覆盖OnActionExecuting事件。

在出现异常的AJAX调用中,我可以通过属性处理此问题,并在自定义模型窗口中显示错误消息。

我的自定义属性如下:

public class JsonExceptionFilterAttribute : FilterAttribute, IExceptionFilter
{
    public void OnException(ExceptionContext filterContext)
    {
        if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
        {
            filterContext.HttpContext.Response.StatusCode = 500;
            filterContext.ExceptionHandled = true;

            string msg = HttpUtility.HtmlDecode(filterContext.Exception.Message);
            if (filterContext.Exception.GetType() == Type.GetType("System.UnauthorizedAccessException"))
            {
                msg = "Unauthorized access";
            }

            filterContext.Result = new JsonResult
            {
                Data = new
                {
                    errorMessage = msg
                },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };
        }
    }
}

但是当使用DataTables.Net时出现异常时,我得到的唯一消息就是DataTables.NET自己的错误说法" ...请参阅http://datatables.net/tn/7&# 34;

但我想像在其他AJAX调用中一样显示自己的Exception消息。基本上我想显示我在自定义属性响应中提供的错误消息。

我用谷歌搜索过,建议使用 " fnServerData" ,但我无法在任何参数中找到我的异常消息( sSource,aoData,fnCallback,oSettings )我得到了这个事件处理程序。

我怎样才能获得基本控制器返回并显示它的异常消息?

问候。

P.S。 :在Action中处理异常并返回它不适用于此,因为我根本不属于Action方法。

0 个答案:

没有答案