ASP.NET MVC 5和jquery ui datepicker验证

问题描述 投票:1回答:1

在asp.net MVC应用程序中,我有以下属性:

...
public System.DateTime StartTime { get; set; }
...

并且,在视图中(在表单中):

<div class="form-group">
   @Html.LabelFor(model => model.StartTime, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
      @Html.EditorFor(model => model.StartTime, new { htmlAttributes = new { @class = "form-control" } })
      @Html.ValidationMessageFor(model => model.StartTime, "", new { @class = "text-danger" })
   </div>
</div>

在javascript中:

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

我使用asp.net MVC的默认jquery验证得到以下错误:

字段StartTime必须是日期。

我可以用dd / MM / YYYY格式处理日期而在asp.net MVC中没有任何错误?

asp.net-mvc jquery-ui jquery-ui-datepicker asp.net-mvc-validation
1个回答
0
投票

我遇到了同样的问题,问题的关键是dateFormat。如果您使用默认格式,则提交时没有问题,但如果您更改它,则提交时会出现问题。

我发现的解决方案是使用altField和altFormat。使用datepicker,您可以使用显示值的格式和具有不同格式的替代隐藏字段(altField)(altFormat)。要使用它,请执行以下操作:

    $("#StartTime").datepicker({
    dateFormat: "dd/mm/yy",
    altField: $(this).val(),
    altFormat: "M/dd/yy"
    });
© www.soinside.com 2019 - 2024. All rights reserved.