C# AngularJS对象未正确转换为ViewModel.NET

C# AngularJS对象未正确转换为ViewModel.NET,c#,angularjs,C#,Angularjs,我有一个AngularJS指令,它返回一个带有一些值的数组,如下所示: public JsonResult SaveOptions(OptionsViewModel[] options) { //... } 我用来生成上述对象的AngularJS代码是: //-------------------------- // service... service.getSelectedOptions = function() { var options = []; for

我有一个AngularJS指令,它返回一个带有一些值的数组,如下所示:

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数组。