2014-01-22 38 views
0

假设我有一个带有4个文本框的网页。为了保存数据,用户必须使用自动完成(例如typeahead.js)来填充它们,他不能输入不在数据库内的东西。如何处理AJAX中例外的代码 - 最佳实践

现在,如果某个ajax字段未能加载,您将如何显示错误,以及您将在哪里检查错误?现在我在我的控制器中使用类似这样的东西:

if (someOperation.Success) 
{ 
resultToReturn.Data = new {success = true, message = "",data = dataToSerializeAndReturn}; 
} 
else 
{ 
resultToReturn.Data = new { success = false, message = "Some error message" }; 
} 

并检查返回的JSON中的“成功”。

问题是 - 有没有更好的方法?

在此先感谢。

此致敬礼。

+0

“他不能输入不在数据库内的东西”如何?你逼迫它吗?以及为什么Ajax字段无法加载?你的用例还不清楚。 – Falaque

+0

@Falaque: 对不起,我的意思是:我得到了“城市”表,用户必须从那里选择一个城市。当他进入某个东西时,他会从前端获得线索,并且他需要选择其中的一个。如果他尝试输入不在数据库中的东西,他将无法保存表格。 至于“为什么Ajax字段会失败”...例如 - 我的数据库连接将会失败,或者我的代码中会有一个会突然抛出异常的错误 - 我正在考虑“最糟糕的情况” - 也许我有点偏执;] – user2384366

回答

1

如果您使用的是jQuery,这是mvc .Net的默认方法,您应该捕获客户端的ajax错误。如果你在服务器端发现错误并且发送一个有效的Json到你的用户界面,那么你发送的这些调用的正确ajax响应并不是一个ajax错误。我的理解是尝试不成功的“虚假”,让服务器发送适当的错误,并在客户端工作。

+1

嗯,你是说,我应该只是序列化我的异常到JSON并将其发送到ajax?我必须说,我没有想到这个简单的方法;]我将不得不测试它 - 感谢这个想法。 (最简单的答案很难看,有时候) – user2384366

+0

干草也发布解决方案,如果它的工作。 – Falaque

1

一旦你从服务器的响应:

  • 检查是否成功的假。

  • 如果它的错误,你知道它的错误。

  • 您可以使用javaScript弹出窗口来显示异常。或者可以选择显示警报框。