始终获取“字段日期必须是日期”验证消息

时间:2013-11-26 10:15:10

标签: jquery-ui asp.net-mvc-4

当我提交表单来调用帖子动作(方法)时,我总是得到如下的验证消息

字段ReportStartDate必须是日期。

我的模特是

public class ReportModel
{
    public DateTime? ReportStartDate { get; set; }
    public DateTime? ReportEndDate { get; set; }
}

我的观点如下,

@using(@Html.BeginForm())
{
    <div>
        @Html.Bootstrap().ControlGroup().TextBoxFor(m => m.ReportStartDate).Label().LabelText("Start Date")
        @Html.Bootstrap().ControlGroup().TextBoxFor(m => m.ReportEndDate).Label().LabelText("End Date")

        <div class="form-actions align-right">
            @Html.Bootstrap().SubmitButton().Text(AOCrowdFund.Resources.Global.Report).Id("GenerateReport")
        </div>
    </div>
}

注意
我在这个字段中使用jquery datepicker

注意:

即使我使用以下内容,我也会收到相同的错误..

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [Required(ErrorMessageResourceName = "ErrFieldRequired", ErrorMessageResourceType = typeof(Resources.Global))]
    public DateTime? ReportStartDate { get; set; }


    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [Required(ErrorMessageResourceName = "ErrFieldRequired", ErrorMessageResourceType = typeof(Resources.Global))]
    public DateTime? ReportEndDate { get; set; }

3 个答案:

答案 0 :(得分:2)

我不能说出一个关于该做什么的确切问题。但你可以通过以下方式做到。它会像你期望的那样暂时帮助你。

为您添加以下jquery代码

$('#DatePicker').removeAttr("data-val-date");

之后在控制器中验证您的日期并添加模型错误..

ModelState.AddModelError(String.Empty,"Invalid date");

我希望这会暂时帮助你。

答案 1 :(得分:0)

ReportStartDate和ReportEndDate的价值是多少?你使用jquery datepicker还是什么?

通常,如果输入格式不是有效的日期格式,则会发生此错误。并检查它是否适用于其他浏览器(在某些浏览器更新时发生。)

类似问题Here

答案 2 :(得分:0)

尝试在JQuery datepicker中指定altField和altFormat

$("#form").datepicker({
  altField: "#form",
  altFormat: "yy-mm-dd"
});