这与我关于如何处理来自jQuery AJAX调用的错误的问题有关.一些响应建议我使用"error"回调来显示jQuery AJAX调用中的任何错误.我想知道如何使用ASP.NET MVC.我的控制器操作是否有办法返回可从"错误"回调中访问的错误?客户端代码看起来像这样:
$.ajax({ type: "POST", url: "MyUrl", data: "val1=test", success: function(result){ // Do stuff }, error: function(request,status,errorThrown) { } });
Adam Lassek.. 21
注意:嘿,这是在ASP.Net MVC甚至达到1.0之前发布的,从那以后我甚至没有看过框架.你可能应该停止提升这一点.
做这样的事情:
Response.StatusCode = (int)HttpStatusCode.BadRequest; actionResult = this.Content("Error message here");
状态代码应根据错误的性质而改变; 通常,4xx表示用户生成的问题,5xx表示服务器端问题.
注意:嘿,这是在ASP.Net MVC甚至达到1.0之前发布的,从那以后我甚至没有看过框架.你可能应该停止提升这一点.
做这样的事情:
Response.StatusCode = (int)HttpStatusCode.BadRequest; actionResult = this.Content("Error message here");
状态代码应根据错误的性质而改变; 通常,4xx表示用户生成的问题,5xx表示服务器端问题.
如果你正在使用
[HandleError]
然后抛出一个HttpException将被捕获并路由到您的自定义错误页面.
另一种选择是使用
Response.StatusCode = 500; Response.Write("Error Message"); Response.End();
可能有一种更方便的方式来写这个,但我还没有发现它.
如果您正在使用MVC 3,那么您可以在控制器中返回一个具有HTTP状态代码和状态消息的ActionResult:
return new HttpStatusCodeResult(500, "Error message");
然后,在你的错误回调中:
error: function (request, textStatus, errorThrown) { alert(request.statusText); }