2013-01-18 160 views
3

我想从我的Web API控制器抛出一个异常。 问题是我的JavaScript代码没有得到任何数据。ASP.NET Web API抛出异常

throw new HttpResponseException(HttpStatusCode.NoContent); 

在我的jQuery ajax函数中,我没有得到任何回报。我从ajax调用返回undefined。 所以基本上什么是从服务器处理错误的正确方法?

回答

1

我现在觉得很愚蠢,我尝试了一个不同的StatusCode,现在我实际上得到了一些数据。我认为每个statusCode都会返回一些价值。此状态代码literaly返回NoContent。

+2

仅供参考:“无内容”实际上是204状态码。客户端认为2XX范围内的任何状态代码都是成功的。因此,抛出异常并返回NoContent是有点矛盾的。您可能在寻找BadRequest或NotFound作为您的状态代码。 –

+0

HTTP状态码204使得GET动词的行为像HEAD动词,意味着不应该返回数据。您应该返回HTTP状态代码200或其他2xx状态。我同意Darrel的说法,抛出一个2xx状态码作为异常在语义上看起来不正确。 –