在ASP.NET MVC中,可以通过自定义异常过滤器来返回异常消息给Ajax调用。下面是一个示例:
HandleErrorAttribute
类并实现IExceptionFilter
接口:public class AjaxExceptionFilter : HandleErrorAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
// 返回异常消息给Ajax调用
filterContext.Result = new JsonResult
{
Data = new { error = filterContext.Exception.Message },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
filterContext.ExceptionHandled = true;
}
else
{
base.OnException(filterContext);
}
}
}
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
// 注册自定义异常过滤器
GlobalFilters.Filters.Add(new AjaxExceptionFilter());
// 其他初始化代码...
}
}
现在,当发生异常时,如果该请求是一个Ajax请求,将会返回一个包含异常消息的JSON对象。