1

以下は、コントローラーに値を返すための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配列の数値を文字列に変換するようにコードを変更しましたが、それでも何も渡されません。(モデルのリストはnullです)。

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

5

これを試して:

$.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); 
    } 
});
于 2012-10-04T18:25:56.587 に答える