我有以下代码
<script type="text/javascript">
$(function () {
$('#cboDeptID').change(function () {
var selectedDepartmentId = $(this).val();
var depmodel = {
Employees:'@Model.Employees',
Departments:'@Model.Departments',
DepartmentId:'@Model.DepartmentId',
DepartmentName:'@Model.DepartmentName',
SelectedDepartmentId:'@Model.SelectedDepartmentId'
};
$.ajax({
url: '@Url.Action("GetEmployees","DepartmentController")',
contentType: 'application/json; charset=utf-8',
type: 'POST',
dataType: 'json',
data: JSON.stringify({ model: depmodel })
})
.success(function (result) {
alert('Success!');})
.error(function (xhr, status){ alert('The provider could not be updated.');});
});
});
</script>
关于这个组合更改我想将模型传递给控制器。该模型包含上述成员,例如employees,departments,departmentid等。控制器操作将在组合更改时触发,但模型成员值为null。我做错了吗?请帮助。
控制器方法如下所示
public ActionResult GetEmployees(DepartmentModel model)
{
// code goes here
return View ("DepartmentView",model);
}
答案 0 :(得分:0)
您需要将JSON.stringify行更改为:
data: JSON.stringify(depmodel)
将此数据发布到控制器时的自动模型绑定变得混乱,因为当您调用JSON.stringify时,您将在另一个数组中发布键值对(员工,部门等)。所以它收到的是:
{ model: { Employees: <value>, ... } }
但它想要的只是它试图绑定的模型中属性的键值对