【问题标题】:DataBinder not binding JSON array object to List field in ModelDataBinder 未将 JSON 数组对象绑定到模型中的 List 字段
【发布时间】:2012-10-04 18:02:57
【问题描述】:

下面是我用来创建 JSON 对象的 javascript 代码,通过该对象将值返回给控制器。 vm 指代一个由数字填充的其他地方的数组。我创建了一个数字数组的对象。

$("#saveUser").live("click", function() {

            var username = $("#UserName").val();
            var email = $("#Email").val();
            var phoneNumber = $("#PhoneNumber").val();
            var personCode = $("#PersonCode").val();
            var managerId = $("#ManagerId").val();
            var officeId = $("#OfficeId").val();
            var address = $("#Address").val();
            var activeInd = $("#ActiveInd").val();

            var roles = [];
            for(i=0;i<vm.RoleDdList().length ;i++) {
                    roles.push(vm.RoleDdList()[i].role());   
                }

            var jsonObj = 
                {
                    username:username,
                    email:email,
                    phoneNumber:phoneNumber,
                    personCode:personCode,
                    managerId:managerId,
                    officeId:officeId,
                    address:address,
                    activeInd:activeInd,
                    roles:roles
            };


            $.ajax({
               type:"POST",
               async:true,
               url:"Users/Save",
               data:jsonObj,
               dataType: "json",
               success:function (data) {
                   dlg.dialog("close");
               },
               error:function (data) 
               {
                   alert("An error occurred when saving the contact.");    
               }
            });
        });

控制器方法:

[HttpPost]
    public void Save(UsersModel model)
    {
        //code
    }

我可以使用调试器看到角色字段没有被传递给控制器​​。它是在客户端生成和填充的。该模型需要该特定字段的字符串列表。所有其他对象都通过并匹配。

我已经更改了将 vm 数组中的数字转换为字符串的代码,但我仍然没有得到任何通过。 (模型中的List为空)。

有人知道我做错了什么吗?

【问题讨论】:

    标签: json asp.net-mvc-3


    【解决方案1】:

    试试这个:

    $.ajax({ 
        type: 'POST', 
        dataType: 'json', 
        url: '/Users/Save', 
        data: JSON.stringify(jsonObj), 
        contentType: 'application/json; charset=utf-8', 
        success: function (data) { 
            console.debug(data); 
        }, 
        error: function (data) { 
            console.debug(data); 
        } 
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多