当我调用Model.destroy时,它会向服务器发送正确的请求。但是,我处理错误不是RESTful
,我返回一个带有一些适当信息的JSON,而不是抛出一个http异常。
现在我希望能够阻止在回调中删除模型。对于前者;
window.UserView = Backbone.View.extend({
//Other stuff here.
clearSuccess: function (model, response) {
if (!response.Exception) {
$(this.el).fadeOut('fast', function() {
$(this).remove();
});
}
else {
//Can I cancel the destroy here?
}
},
clearFailed: function (model, response) {
alert("failed");
}
});
这是我在success
方法上发送到模型的error
和destroy
参数的2个回调。所以我的评论是,我想告诉Backbone.js“没关系,服务器说我不能删除,所以保持模型”。我该怎么做?
答案 0 :(得分:0)
最简单的事情可能是返回一个不成功的HTTP状态代码(400-599)和一个带有应用程序级错误详细信息的JSON文档的响应主体。有关HTTP状态的更多信息,请参阅此主题:
Using HTTP status codes to reflect success/failure of Web service request?
如果你这样做,骨干应该自动知道故障状态意味着服务器上的销毁没有成功,我认为它会做正确的事。
答案 1 :(得分:0)
您可以使用ASP.net MVC控制内容正文。只需将Response.StatusCode属性设置为您要使用的值,然后返回JSON响应或内容响应,或其他任何内容。
Response.StatusCode = (int)HttpStatusCode.Conflict;
return Json( errorMessage );
工作得很好。