以下は、コントローラーに値を返すための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です)。
誰かが私が間違っていることを知っていますか?