C# 如何处理mvc中的无效日期

C# 如何处理mvc中的无效日期,c#,validation,datetime,model-view-controller,data-annotations,C#,Validation,Datetime,Model View Controller,Data Annotations,我在索引页上有一个关于出生日期的文本框。我必须验证用户是否输入完整的日期格式(mm/dd/yyyy),但它允许发布2012年3月(mm/dd),无年份,在c端转换为2015年3月12日 我的要求是验证用户输入完整的日期格式。 我使用了数据注释,但也没有将(mm/dd)作为无效日期处理 @Html.TextBoxFor(m => m.Search.DOB, new { @class = "form-control datepicker" }) 也许你可以在javascript中使用正则表达

我在索引页上有一个关于出生日期的文本框。我必须验证用户是否输入完整的日期格式(
mm/dd/yyyy
),但它允许发布2012年3月(mm/dd),无年份,在c端转换为2015年3月12日

我的要求是验证用户输入完整的日期格式。 我使用了数据注释,但也没有将(mm/dd)作为无效日期处理

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

也许你可以在javascript中使用正则表达式, 当fucusout事件被触发时

或者通过以下方法解决问题

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
public DateTime StartDate { get; set; }

也许你可以在javascript中使用正则表达式, 当fucusout事件被触发时

或者通过以下方法解决问题

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
public DateTime StartDate { get; set; }
您可以使用无需javascript即可工作的脚本。 例如:

<input type="text"
       name="DOB"
       placeholder="MM/dd/yyyy"
       title="MM/dd/yyyy"
       required
       pattern="^([1-9]|1[0-2])/([1-9]|1[0-9]|2[0-9]|3[0-1])/\d{4}$" />

您可以使用无需javascript即可工作的脚本。 例如:

<input type="text"
       name="DOB"
       placeholder="MM/dd/yyyy"
       title="MM/dd/yyyy"
       required
       pattern="^([1-9]|1[0-2])/([1-9]|1[0-9]|2[0-9]|3[0-1])/\d{4}$" />


到目前为止您尝试了什么?代码在哪里?您如何在客户端进行验证
TextBoxFor
不会创建任何验证脚本,它只会显示并绑定一个文本框。生成验证脚本是EditFor的工作。来自@Ecorry:当fucusout事件被触发时,也许您可以在javascript中使用正则表达式!或者只是使用一个日历框,然后根据数据库中存储的内容对值进行后期验证?到目前为止您尝试了什么?代码在哪里?您如何在客户端进行验证
TextBoxFor
不会创建任何验证脚本,它只会显示并绑定一个文本框。生成验证脚本是EditFor的工作。来自@Ecorry:当fucusout事件被触发时,也许您可以在javascript中使用正则表达式!或者只是使用一个日历框,然后在post上根据数据库中存储的内容验证值?欢迎使用堆栈溢出!这实际上是一个评论,而不是一个答案。再重复一点。目前,我已经为你添加了评论,我将此帖子标记为删除。我使用了这些东西,但没有任何效果。我没有任何选择使用javascript。欢迎使用堆栈溢出!这实际上是一个评论,而不是一个答案。再重复一点。目前,我已经为你添加了评论,我将此帖子标记为删除。我使用了这些东西,但没有任何效果。我没有任何选择使用javascript。