我正在尝试使用 dojo.gridx 和 dojo.JsonRest 作为我的内存存储。我正在使用lazyEdit 功能,因为在提交之前需要完全填写一行的某些限制。
我有一个按钮和延迟对象定义如下
grid.startup();
// var gridDeferred = new Deferred(function(reason){
// do something when the Deferred is cancelled
// alert("canceled");
// });
var saveButton = new Button({
label: "Save All Changes",
onClick: function(){
gridDeferred = grid.model.save();
// gridDeferred = grid.model.when();
gridDeferred.then(function(value){
alert("done");
},function(err){
alert("err");
}, function(update){
alert("update");
});
}
}, "Update").startup();
我还尝试在按钮上的 onclick 事件之前取消注释我的延迟对象,但仍然没有运气。
这是我从服务器返回的响应标头
HTTP/1.1 500 Internal Server Error
Cache-Control: private, s-maxage=0
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: "removed by McFrank"
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
Set-Cookie: "removed by McFrank"
X-Powered-By: "removed by McFrank"
Date: "removed by McFrank"
Content-Length: 46
我是否忘记添加标头以使 dojo 核心库拒绝该请求?我也可以在调试器中看到以下错误。
PUT http://localhost:36348/admin/sales/1 500 (Internal Server Error)xhr
@dojo.js:15dojo.xhr
@ dojo.js:15_4.put
@ JsonRest.js:33_60c.around.advice
@ dojo.js:15_607.(anonymous function)._60c
@ dojo.js:15declare._saveRow
@ Modify.js:412(anonymous function)
@ Modify.js:249_5b5.forEach
@ dojo.js:15declare.save
@ Modify.js:248declare._call
@ _Extension.js:67declare._call
@ _Extension.js:67declare._call
@ _Extension.js:67declare._call
@ _Extension.js:67declare._mixinAPI.api
@ _Extension.js:76Button.onClick
@ salesdata:540_1._onClick
@ _ButtonMixin.js:16(anonymous function)
@ dojo.js:15_1.__onClick
@ _ButtonMixin.js:7(anonymous function)
@ dojo.js:15
我也收到此错误
_5aa {message: "Unable to load /admin/sales/1 status: 500", response: Object, status: 500, responseText: "DealershipProductID:System.Web.Mvc.ModelError,", xhr: XMLHttpRequest}message: "Unable to load /admin/sales/1 status: 500"response: ObjectresponseText: "DealershipProductID:System.Web.Mvc.ModelError,"stack: (...)get stack: () { [native code] }set stack: () { [native code] }status: 500xhr: XMLHttpRequest__proto__: _5aa_4c3 @ dojo.js:15(anonymous function) @ dojo.js:15_1fe @ dojo.js:15_1fc @ dojo.js:15dojo.Deferred.reject.errback @ dojo.js:15_1fe @ dojo.js:15_1fc @ dojo.js:15dojo.Deferred.reject.errback @ dojo.js:15(anonymous function) @ dojo.js:15_4ec @ dojo.js:15_4e6 @ dojo.js:15_504.reject @ dojo.js:15_4f2 @ dojo.js:15_4ec @ dojo.js:15_4e6 @ dojo.js:15_504.reject @ dojo.js:15_4f2 @ dojo.js:15_4ec @ dojo.js:15_4e6 @ dojo.js:15_504.reject @ dojo.js:15_4f2 @ dojo.js:15_4ec @ dojo.js:15_4e6 @ dojo.js:15_504.reject @ dojo.js:15_4f2 @ dojo.js:15_4ec @ dojo.js:15_4e6 @ dojo.js:15_504.reject @ dojo.js:15_40b @ dojo.js:15_417 @ dojo.js:15
我还尝试让 dojo xhr 请求出错,它对以下请求执行此操作
xhr.put("http://localhost:36348/admin/sales/1", {
data:{"Id":1,"ProductID": null,"AccountExecName":"something","NetCommissionAmount":13625},
handleAs:"json"
}).then(function(data){
alert("testDone")
},function(err){
alert("testerror");
}, function(evt){
alert("testxhr");
}
)