当ASP.NET MVC抛出异常时,它返回一个500错误和响应类型text/html
,这显然是无效的JSON格式。
我想要对期望JSON响应的Ajax请求做出错误响应,并将其显示给用户。
是否可能返回状态码为500的JSON?
当问题是缺少参数时,在调用控制器之前发生500错误,因此控制器解决方案可能不起作用。例如,在调用通常返回JsonResult的Action时,如果缺少必需的参数,则ASP.NET MVC会将以下内容发送回客户端:
'/' 应用程序中的服务器错误。 参数字典包含非可空类型'system.int32'的参数'id'的空条目,该参数用于 'bhh' 中的方法 'system.web.mvc.jsonresult edituser(int32、system.string、system.string、system.string、system.string、system.string、system.string、system.string、system.string)'。 可选参数必须是引用类型、可空类型或声明为可选参数。 参数名称:parameters
我正在使用jQuery,有更好的处理方法吗?
filterContext.HttpContext.Response.StatusCode = 500;
,然后在JSON调用上设置一个错误处理程序,如下所示:error: function(error) { ... }
。在我看来,这将是更清晰的选项,因为错误将由错误处理程序处理... - Manfred