Serialize() Jquery 为字段日期类型返回 null
Posted
技术标签:
【中文标题】Serialize() Jquery 为字段日期类型返回 null【英文标题】:Serialize() Jquery returns null for fields date type 【发布时间】:2014-01-08 01:45:25 【问题描述】:我正在尝试序列化我的表单我的 PartialViewResult (ASPNET MVC 4) 中有值但是将 DATE 类型字段变为空,有人知道为什么吗?谢谢!
$.ajax(
url: '@Url.Action("CadastroLancamentoParcelar")',
type: 'GET',
cache: false,
context: this,
data: $("#LancamentoForm").serialize(),
success: function (result)
$(this).html(result);
,
close: function (event, ui)
$('#dialog-parcelar').empty();
);
我的部分视图结果:
[Security]
[HttpGet]
public PartialViewResult CadastroLancamentoParcelar(LancamentoReceitaDespesa lancamento)
lancamento.decLancamentoParcelaValor = lancamento.decLancamentoReceitaDespesaValor;
return PartialView("_CadastroLancamentoParcelar", lancamento);
HTML MVC:
@Html.TextBoxFor(model => model.dtLancamentoReceitaDespesaDataVencimento, "0: dd/MM/yyyy", new @maxlength = "10", @style = "width:107px;", @onkeypress = "mascara(this,mdata);", autocomplete = "off", @id = "txtCalendario" )
HTML:
<input autocomplete="off" data-val="true" data-val-date="The field Data do Vencimento: must be a date." id="txtCalendario" maxlength="10" name="dtLancamentoReceitaDespesaDataVencimento" onkeypress="mascara(this,mdata);" style="width:107px;" type="text" value="" class="hasDatepicker">
【问题讨论】:
检查生成的 HTML,或者在这里发布 我的猜测是有一些 ASP.net 代码在干扰。日期选择器可能会创建另一个元素来保存该值,直到提交表单。确保正在更新 HTML 输入。 能否发布通过 ajax 请求传递的数据? 看起来他在序列化日期值……对吗?和面膜有关系吗? 19%2F12%2F2013 【参考方案1】:已经解决了问题...
默认模型绑定器存在一个不易了解的问题,但一旦您知道了,就不会再犯同样的错误:
当您使用 POST 请求时,默认模型绑定器使用您的文化设置来解析日期。
当您使用 GET 请求时,默认模型绑定器使用 CultureInfo.InvariantCulture 来解析日期并忽略您当前的文化设置。
按照链接发现: Passing a DateTime to controller via URL causing error in ASP .NET MVC 3 (culture)
【讨论】:
以上是关于Serialize() Jquery 为字段日期类型返回 null的主要内容,如果未能解决你的问题,请参考以下文章
jquery.serialize() 无法使用 dataTables 插件从第二页开始工作
jQuery form.serialize() 没有给出当前值
jQuery ajax中serialize()方法增加其他参数
jQuery将.serialize()数据转换为JSON数据