如何从webmethod返回错误?

时间:2011-08-27 17:37:13

标签: jquery asp.net webmethod

如何在用WebMethod装饰的aspx页面方法中返回错误?

示例代码

$.ajax({
    type: "POST",
    url: "./Default.aspx/GetData",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: AjaxSucceeded,
    error: AjaxFailed
});

[WebMethod]
public static string GetData()
{

}

如何从web方法返回错误?因此,可以使用jquery错误部分来显示错误详细信息。

3 个答案:

答案 0 :(得分:7)

我不知道是否有更多WebMethod特定的方式,但在ASP.NET中,您通常只需设置Response object的状态代码。像这样:

Response.Clear();
Response.StatusCode = 500; // or whatever code is appropriate
Response.End;

使用标准错误代码是向消费者HTTP客户端通知错误的适当方法。在结束回复之前,您还可以Response.Write()要发送的任何邮件。这些格式的标准化程度要低得多,因此您可以创建自己的格式。但只要状态代码准确反映了响应,那么您的JavaScript或使用该服务的任何其他客户端都将理解错误。

答案 1 :(得分:3)

只需在PageMethod中抛出异常并在AjaxFailed中捕获它。这样的事情:

function onAjaxFailed(error){
     alert(error);
}

答案 2 :(得分:1)

错误由结果页面的http状态代码(4xx - 用户请求错误,5xx - 内部服务器故障)指示。我不知道asp.net,但我想你必须抛出异常或类似的东西。

相关问题