asp.net MVC serialize() 在控制器的模型中返回空
asp.net mvc serialize() returns empty in controller's model
我的cshtml
片段:
@model Models.ClockingInformationViewModel
<form id="clocking-form">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label class="control-label">Time in</label>
<div class="input-group date form_datetime">
@Html.TextBoxFor(m => m.Attendance.Time01In, new { @class = "form-control", @readonly = "readonly", size = "16" })
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label class="control-label">Job code</label>
@Html.TextBoxFor(m => m.Attendance.Time01InJob, new { @class = "form-control" })
控制器:
[HttpPost]
public JsonResult ClockingInformation(ClockingInformationViewModel model)
{
return null;
}
视图模型:
public class ClockingInformationViewModel
{
public Attendance Attendance { get; set; }
public List<Clock> ClockingLocations { get; set; }
}
在我的javascript中,我有这个:
function saveClockingInformation() {
var data = $("#clocking-form").serialize();
$.post($("#clocking-info-url").val(), { model: data });
}
当我在控制器中设置断点时,ClockingInformationViewModel model
属性为 null。
当我做serializeArray()
而不是serialize()
时,ClockingInformationViewModel model
不是空的,但属性Attendance
是。
我敢肯定,这是我忽略了一些愚蠢的错误。
有什么见解吗?
您的var data = $("#clocking-form").serialize();
行代码已经将表单序列化为对象,因此代码需要
function saveClockingInformation() {
var data = $("#clocking-form").serialize();
$.post($("#clocking-info-url").val(), data);
}
将表单数据发送为
Attendance.Time01In=someValue&Attendance.Time01InJob=anotherValue
而您当前使用 { model: data }
的实现将表单数据作为
model[Attendance.Time01In]=someValue&model[Attendance.Time01InJob]=anotherValue
与您的模型没有关系,因此绑定失败。
旁注:您使用$("#clocking-info-url").val()
建议您将 URL 放入隐藏的输入中。相反,请使用
var url = '@Url.Action("yourAction", "yourController")',
$.post($(url, data);
或者,如果您使用 Html.BeginForm()
生成了表单,则使用
var form = $("#clocking-form");
var url = form.attr('action');
$.post($(url, data);
相关文章:
- Angular,函数在(模型)工厂中返回值
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- Aurelia绑定-点击按钮返回查看模型
- 续集返回未定义的模型自定义方法
- “渲染骨干模型视图”返回未定义的结果
- Node.js应用程序中从模型层异步返回数据
- Ember.js返回相同的模型
- 保存模型返回错误
- Ember.js:路由返回多个模型,包括一个promise,给出错误
- 在控制器中将 ng 模型值返回为空的指令
- 在视图模型中使用 MVC 视图返回 JsonResult 数据
- 挖空映射对象未由杜兰达尔视图模型返回
- 在我的情况下,ng 模型返回未定义
- Knockout视图模型返回函数(如何?)
- 从AngularJS$scope ng模型返回对象
- 基于User的客户模型返回基于userId而不是customerId的FK属性
- 需要余烬模型返回数组承诺而不是对象
- 如何在 AngularJS 中将数据异步从模型返回到控制器
- Ember JS -无法循环从模型返回的数组,即使它是一个数组
- 从骨干模型返回承诺