【问题标题】:How to handle invalid date in mvc如何处理mvc中的无效日期
【发布时间】:2015-10-13 08:46:41
【问题描述】:

我在索引页面上有一个出生日期文本框。我必须验证用户输入完整的日期格式(mm/dd/yyyy),但它允许在没有年份的情况下发布 03/12(mm/dd),并且在 c# 端它转换为 03/12/2015。

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

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

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 代码在哪里?您如何在客户端进行验证? TextBoxFor 不会创建任何验证脚本,它只会显示和绑定一个文本框。生成验证脚本是EditFor 的工作。
  • 来自@Ecorry:当fucusout事件被触发时,也许你可以在javascript中使用正则表达式!
  • 或者只是使用一个日历框,然后根据数据库中存储的内容验证该值?

标签: c# validation datetime model-view-controller data-annotations


【解决方案1】:

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

或通过关注解决问题

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

【讨论】:

  • 欢迎来到 Stack Overflow!这实际上是评论,而不是答案。多一点代表,you will be able to post comments。目前我已经为你添加了评论,并且我将这个帖子标记为删除。
  • 我使用了这些东西,但没有任何效果。我没有任何使用 javascript 的选项。
【解决方案2】:

您可以使用html5 form validation,它可以在没有 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}$" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 2014-05-20
    • 2018-03-31
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多