您发送的 javascript 对象不正确。
"PermissionGroups": ["Name": "Group Name", "Description": "Test Desc"]
在你的视图模型中,PermissionGroups
是一个集合PermissionGroupModel
项目。但你不是这样传递的。上面的代码发送 4 个字符串项作为PermissionGroups
财产。您需要将集合中的每个项目包装起来{
and }
另外,为了在复杂对象上进行模型绑定,您需要使用以下命令将 javascript 对象转换为 json 字符串JSON.stringify
方法并指定contentType
进行 ajax 调用时的属性。这contentType
财产价值应该是"application/json"
The contentType
属性告诉服务器我们发送的数据是 Json 格式。
var d = {
"Name": "Test Name", "Description": "Test Desc",
"PermissionGroups": [{ "Name": "Group Name", "Description": "Test Desc" }]
};
$.ajax({
type: "POST",
url: "/BackOffice/CreateRole",
contentType: "application/json",
data: JSON.stringify(d) ,
success: function (data) { console.log(data); },
complete: function (data) {}
});
另外,使用 Url.Action 辅助方法构建操作方法的 url 也是一个好主意。
所以更换url: "/BackOffice/CreateRole"
with url: "@Url.Action("CreateRole","BackOffice")"