MVC DateTime Picker设置值来自jQuery不绑定到模型



我的日期时间选择器与我的View-Model上的DateTime属性绑定。当我从日期时间选择器中选择日期时,它将值绑定到模型,但是当我尝试通过j equery设置值时,该值始终为null。

我的模型是:

 public class viewmodel
{
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public datetime DDate { get; set; }
}

,视图代码为

<div class="col-md-3">
@Html.TextBoxFor(m => m.DDate, new {@class = "form-control datepicker" })
@Html.ValidationMessageFor(model => model.DDate, "", new { @class = "text-danger" })</div>

JavaScript代码是

$("#DDate").datepicker({ dateFormat: 'dd/mm/yy' });

因此,当我单击选项按钮时,它设置了DateTime Picker的日期

$(':input[id="rbVatVoluntary"]').click(function () {
    var thDate = $("#DDate");
    thDate.attr("disabled", 'disabled');
    thDate.datepicker('setDate', new Date());});

当我在浏览器中检查控制台时,我会看到该值正确设置了,但是当我发布表单并检查模型属性时,它为null。

我感谢有关此

的任何帮助

disabled html属性防止在邮政请求期间要提交的输入值(被视为null值),如此说明:

给出

禁用元素通常用灰色的文本绘制。如果元素是 禁用,它不响应用户操作,无法集中精力, 命令事件不会开火。在形式元素的情况下, 不会提交。

如果要保留邮政期间要提交的值但可以防止用户更改其内容,请改用HTML readonly属性:

$(':input[id="rbVatVoluntary"]').click(function () {
    var thDate = $("#Date");
    thDate.attr("readonly", "readonly");
    thDate.datepicker('setDate', new Date());
});

您还需要将属性名称匹配以在辅助方法中分配一个:

@Html.TextBoxFor(m => m.Date, new { @class = "form-control datepicker" })

最新更新