然而,我使用以下Web方法来获取驱动程序的数据。我的问题是,如果没有找到数据,返回json处理错误的最佳方法是他们的特定错误代码,例如找不到页面我不会404我应该在我的webmethod中发送回来
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public motorista GetDriverInformation(int driverId)
{
motorista _wsmoristita = new motorista();
_wsmoristita = _dal.GetDriverInformation(driverId);
return _wsmoristita;
}
答案 0 :(得分:0)
我想你正在使用 jquery ajax 。您可以使用特定消息在WebMethod
中抛出自定义异常,然后在您在ajax调用中定义的错误函数中显示此消息。
$.ajax({});
success: OnSuccess,
error: OnErrorCall
您的OnErrorCall
功能将如下所示
function OnErrorCall(response) {
alert(response.responseText);
}
您甚至可以在某个文本框中显示该消息,因此如果您发送带有未找到记录等异常的异常,您可以在标签,警告等中显示该消息。
以下是自定义异常的示例。如果需要,您可以阅读MSDN Article
public class EmployeeListNotFoundException: Exception
{
public EmployeeListNotFoundException()
{
}
public EmployeeListNotFoundException(string message)
: base(message)
{
}
public EmployeeListNotFoundException(string message, Exception inner)
: base(message, inner)
{
}
}
答案 1 :(得分:0)
我最终使用了类似下面的内容,但我认为它并不是最好的方式,因为它不会导致错误导致网络开发人员出错。
if (_wsHistory.id_terminal == 0)
{
Context.Response.Status = "404 Terminal table Not Found";
//the next line is untested - thanks to strider for this line
Context.Response.StatusCode = 404;
//the next line can result in a ThreadAbortException
//Context.Response.End();
Context.ApplicationInstance.CompleteRequest();
return null;
}