目前在webapi控制器上调用SaveChanges时,如果业务规则不满意,我们会抛出异常并显示错误消息。 这是不好的做法,而我们应该返回错误属性设置为某种东西,以便jQuery可以处理它。
问题是我们应该如何填充SaveResult对象的error属性。我们怎样才能访问该对象?
答案 0 :(得分:2)
好问题!我们实际上正在为下一个版本更改此内容,本周晚些时候或下周初。 “新”行为将是在SaveChanges调用期间发生的任何服务器端验证异常将对Breeze客户端产生两种影响。
1)将调用“失败”承诺(不是SaveResult,因为这表示失败的保存),并且返回的错误将包含“serverErrors”集合,其中包含服务器上遇到的所有验证错误的信息,其中每个服务器错误都将是一个单独的json对象,其中包含完整的错误详细信息,包括发生错误的实体和属性(如果可用)以及错误消息。
2)这些错误将自动添加到相应的entity.entityAspect的validationErrors集合中,因此任何使用entityAspect.validationErrorsChanged通知的现有UI都将按预期工作。