我使用jQuery' s ajax
从客户端调用控制器方法。
$.ajax({
url: "/Services/VendorServices.asmx/SendVendorRequestNotifications",
type: 'POST',
contentType: "application/json",
dataType: "json",
data: JSON.stringify({ vendorModel: info }),
timeout: requestTimeOut,
success: function (data) {
// Success
},
error: function (jqXHR, textStatus, errorThrown) {
// Error: Would like to display meaningful message here!
}
});
如果我的SendVendorRequestNotifications
引发异常,我想在客户端显示错误消息。但是,我似乎无法向用户显示一条好消息。
textStatus:
错误
errorThrown:
内部服务器错误
jqXHR.responseText:
{"消息":"发生了一个或多个错误。"," StackTrace":"在System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
在System.Threading.Tasks.Task' 1.GetResultCore(Boolean waitCompletionNotification)
在System.Threading.Tasks.Task' 1.get_Result()"," ExceptionType":" System.AggregateException"}
如您所见,这些都不是有用的数据。我希望能够在服务器上收集更有意义的消息,并将其提供给error
来电的$.ajax
处理程序。
这可能吗?
答案 0 :(得分:0)
要手动传递HttpStatusCodeResult
,请尝试以下操作:
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, e.Response.ReasonPhrase);
不幸的是,您似乎已经锁定了一个不会被视为AJAX错误的返回类型,因此您需要考虑将控制器操作的返回类型更改为得到理想的结果。祝你好运