C# AngularJS对象未正确转换为ViewModel.NET
我有一个AngularJS指令,它返回一个带有一些值的数组,如下所示:C# AngularJS对象未正确转换为ViewModel.NET,c#,angularjs,C#,Angularjs,我有一个AngularJS指令,它返回一个带有一些值的数组,如下所示: public JsonResult SaveOptions(OptionsViewModel[] options) { //... } 我用来生成上述对象的AngularJS代码是: //-------------------------- // service... service.getSelectedOptions = function() { var options = []; for
public JsonResult SaveOptions(OptionsViewModel[] options) {
//...
}
我用来生成上述对象的AngularJS代码是:
//--------------------------
// service...
service.getSelectedOptions = function() {
var options = [];
for (var I = 0; I < service.optionList.length; ++I) {
var availableOption = service.optionList[I];
if (availableOption.selecionado !== '') {
options.push(availableOption);
}
}
return opcoes;
};
//--------------------------
// controller...
var options = [];
var list = OptionsService.getSelectedOptions();
for (var I = 0; I < list.length; ++I) {
var option = list[I];
options.push({ Handle: option.Handle, Selecionado: option.Selecionado });
}
console.log(options);
// Sending the values to backend...
doPost('..../SaveOptions', { options: options }, function (result) { });
我的控制器声明如下:
public JsonResult SaveOptions(OptionsViewModel[] options) {
//...
}
问题是:如果我选择了4个选项,那么后端中的数组有4个选项,但是值没有绑定到对象
为什么?有人知道为什么吗?谢谢 解决方案是在AJAX调用中修改两个参数:
contentType:“应用程序/json”
李>
JSON.stringify(参数)
谢谢 您能否发布
选项service.getSelectedOptions()的方法代码>@tymeJV添加了代码。该服务中的任何内容都是对后端的数据调用吗?如果查看浏览器的“网络”选项卡,实际发送到控制器的POST是什么?@jaimetores SaveOptions POST方法发送到控制器。POST正在正确执行,问题是要将JS对象值作为控制器方法的参数绑定到ViewModel数组。