0

我在尝试 ToDo 示例并在尝试并发处理时遇到了未处理的 Excaption。

dataservice.js 在saveFailed(error)方法中包含以下几行:

if (detail && detail.ExceptionType.indexOf('OptimisticConcurrencyException') !== -1) {
        // Concurrency error 
        reason =
            "Another user, perhaps the server, may have deleted one or all of the todos.";
        manager.rejectChanges(); // DEMO ONLY: discard all pending changes
    }

由于未处理的 OptimisticConcurrencyException,客户端永远不会到达这一点:

[HttpPost]
    public SaveResult SaveChanges(JObject saveBundle) {
        return _contextProvider.SaveChanges(saveBundle);
    }

我试图抓住这个并返回 Exception 这有点愚蠢,因为 Exception 不是 type SaveResult。这是一个错误还是我在某处缺少配置?

问候

4

2 回答 2

1

任何服务器端错误都应该返回到 promise.fail 处理程序。IE

em.saveChanges().then(function(saveResult) {
   // normal path

}).fail(function(error) {
   // your concurrency exception message will be part of the error object. 
});
于 2012-12-13T08:55:01.720 回答
0

我这边的错误...在 VS 中的异常窗口上单击“继续”,将执行 javascript 处理程序。

于 2012-12-13T09:46:19.623 回答