【发布时间】:2015-02-22 00:07:23
【问题描述】:
我将 Breeze.js 和 C# WebAPI 与 BreezeController 一起使用。我想更新客户端网页上的实体,将其传递给 WebAPI 进行更新,保存实体,然后发回警告。
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle) {}
有没有办法返回带有警告信息的 SaveResult?不是错误,是警告。
例如,我正在保存居民的年龄。如果年龄小于 50 [这不是错误],我仍然想警告用户,根据我的业务规则,这对于居民来说可能是不正确的年龄。
saveResult.Errors.Add(new EntityError() {
PropertyName = "Age",
ErrorName = "Warning",
ErrorMessage = "The age of the resident is less than 50. You may want to verify that you entered the correct age."
});
如果我这样做(这是我想要的行为):
- 实体已正确保存。
- 警告消息在 saveResult 结构中发回。
- 实体已在服务器上正确更新并与 saveResult 一起发回(即系统生成的我的实体的主键包含新 ID)。
但是(这不是我想要的行为):
- 在客户端上,实体未更新。即 PK 未更新,实体仍处于挂起状态(未保存)。
我确信我在 SaveResult 中返回错误的事实是问题所在,因为 Breeze.js 可能(正确地)将此解释为错误。但是,我看不到如何使用 Breeze 模型返回警告并且仍然具有所有功能。
顺便说一句,我知道我可以在调用 WebAPI 之前在客户端进行验证,但我希望我的所有验证都在服务器端进行,特别是因为其中一些验证非常复杂。
有什么建议吗?
【问题讨论】:
标签: c# error-handling warnings breeze