.NET MVC接受列表<;t>;使用JSON和ExtJS 4.1.1时作为参数
我试图向.NETMVC控制器发出Ajax请求。当我在控制器代码中放置断点时,我注意到数据为空。我希望它有数据 ExtJS代码:.NET MVC接受列表<;t>;使用JSON和ExtJS 4.1.1时作为参数,json,list,asp.net-mvc-4,extjs4,Json,List,Asp.net Mvc 4,Extjs4,我试图向.NETMVC控制器发出Ajax请求。当我在控制器代码中放置断点时,我注意到数据为空。我希望它有数据 ExtJS代码: var paramsList = []; console.log(paramsList); for (var i = 0; i < dropData.records.length; i++) { if (dropData.records[i].data.Conflicts.indexOf('This Camp' == -1)) { //ad
var paramsList = [];
console.log(paramsList);
for (var i = 0; i < dropData.records.length; i++) {
if (dropData.records[i].data.Conflicts.indexOf('This Camp' == -1)) {
//add this cabin to the parameters object
//idCampEventCabin = 0 tells the server to insert a new CampEventCabin
paramsList.push({ idCampEventCabin: 0, Abbreviation: dropData.records[i].data.Abbreviation, Accommodations: dropData.records[i].data.Accommodations, Capacity: dropData.records[i].data.Capacity, idCabin: dropData.records[i].data.idCabin, Level: dropData.records[i].data.Level, Name: dropData.records[i].data.Name, Number: dropData.records[i].data.Number, Type: dropData.records[i].data.Type, idCampEvent: form.getIdCampEvent() });
}
}
console.log(paramsList);
console.log(Ext.JSON.encode(paramsList));
if (params.length > 0) {
//post
Ext.Ajax.request({
url: '/CampEvent/UpsertCampEventCabins',
method: 'POST',
params: Ext.JSON.encode(paramsList),
success: function (response, request) {
var res = Ext.JSON.decode(response.responseText)
if (res.success == true) {
console.log('success');
thisController.refreshCampEventCabinsForm(form);
}
else {
Ext.Msg.alert('Add CampEventCabins Failed', res.message);
}
},
failure: function (response, opts) {
Ext.Msg.alert('Error', '<p>There was an error trying to save the record:</p><br /><p>The status code was: ' + response.status + '</p><br/><p>The error occurred in the function onMainTabCampEventCabinsFormRender()<p>');
}
});
}
我注意到的一件奇怪的事情是,当我使用Chrome的开发工具检查表单数据时,JSON字符串的末尾有一个额外的冒号。像这样:
[{"idCampEventCabin":0,"Abbreviation":"BH","Accommodations":null,"Capacity":10,"idCabin":2,"Level":"","Name":"Blackhawk","Number":"E2","Type":"Boys","idCampEvent":2},{"idCampEventCabin":0,"Abbreviation":"CH","Accommodations":null,"Capacity":9,"idCabin":3,"Level":"","Name":"Chinook","Number":"D1","Type":"Girls","idCampEvent":2}]:
我希望控制器接受JSON数据作为CampEventCabin的一些集合。我试过“列表”、“IList”、“IEnumerable”都没用。我还尝试过传递params对象而不进行编码
我做错了什么?您的代码似乎只是好的。只需检查控制器流。根据我的理解,作为ExtJS的一部分,您编写的所有代码都是正确的 试一试 公共JsonResult UpsertCampEventCabins(字符串模型) 然后使用json解析器在控制器端进行操作
谢谢这很有效。我添加了一个函数“private static T Deserialize(string json)”,以便将数据返回到对象集合中。
[{"idCampEventCabin":0,"Abbreviation":"BH","Accommodations":null,"Capacity":10,"idCabin":2,"Level":"","Name":"Blackhawk","Number":"E2","Type":"Boys","idCampEvent":2},{"idCampEventCabin":0,"Abbreviation":"CH","Accommodations":null,"Capacity":9,"idCabin":3,"Level":"","Name":"Chinook","Number":"D1","Type":"Girls","idCampEvent":2}]
[{"idCampEventCabin":0,"Abbreviation":"BH","Accommodations":null,"Capacity":10,"idCabin":2,"Level":"","Name":"Blackhawk","Number":"E2","Type":"Boys","idCampEvent":2},{"idCampEventCabin":0,"Abbreviation":"CH","Accommodations":null,"Capacity":9,"idCabin":3,"Level":"","Name":"Chinook","Number":"D1","Type":"Girls","idCampEvent":2}]: