从Breeze Web API返回警告而不是错误

时间:2014-12-23 20:08:42

标签: c# error-handling warnings breeze

我使用Breeze.js和C#WebAPI和BreezeController。我想更新客户端网页上的实体,将其传递给WebAPI进行更新,保存实体,然后发回警告。

[HttpPost]
public SaveResult SaveChanges(JObject saveBundle) {}

有没有办法让SaveResult返回有关警告的信息?不是错误,警告。

例如,我节省了居民的年龄。如果年龄<&lt;超过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之前我可以在客户端进行验证,但我希望我的所有验证都是服务器端,特别是因为其中一些验证非常复杂。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

现在微风没有“警告”的概念&#39;而不是错误&#39;但我确实同意这个概念很有用。你可以在微风用户语音(http://breezejs.uservoice.com/)上将其作为功能请求添加,如果它有足够的兴趣我们肯定会调查它吗?