1

目前在 webapi 控制器上调用 SaveChanges 时,如果不满足业务规则,我们会抛出异常并显示错误消息。这是不好的做法,相反我们应该将错误属性设置为返回值,以便 jQuery 可以处理它。

问题是我们应该如何填充 SaveResult 对象的错误属性。我们甚至如何访问该对象?

4

1 回答 1

2

好问题!实际上,我们正在为下一个版本进行更改,本周晚些时候或下周初。“新”行为将是在 SaveChanges 调用期间发生的任何服务器端验证异常将对 Breeze 客户端产生两个影响。

1) 将调用“失败”承诺(不是 SaveResult,因为这表示保存失败),返回的错误将包含一个“serverErrors”集合,其中包含有关服务器上遇到的所有验证错误的信息,其中每个服务器错误将是一个单独的 json 对象,其中包含完整的错误详细信息,包括发生错误的实体和属性(如果可用)以及错误消息。

2) 这些错误将自动添加到适当的 entity.entityAspect 的 validationErrors 集合中,因此任何使用 entityAspect.validationErrorsChanged 通知的现有 UI 都将按预期工作。

于 2013-07-16T17:28:39.603 回答