下面是我用来创建 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 数组中的数字转换为字符串的代码,但我仍然没有得到任何通过。(模型中的列表为空)。
有人知道我在做什么错吗?