首页 > 解决方案 > 使用引导日期选择器对 MM/YYYY 进行 ASP NET MVC 客户端验证

问题描述

我有一个带有月份字段的表单。为了限制用户输入的值,我使用了在 javascript 文件中初始化的 bootstrap datepicker:

$(function () {
    $('.month-picker').datepicker({
        format: "mm/yyyy",
        startView: "months",
        minViewMode: "months"
    });
}

这是我在这个领域的 Razor 代码:

<div class="input-group date month-picker" data-provide="datepicker">
     @Html.TextBoxFor(m => m.Mes, "{0:MM/yyyy}", new { id = "Mes", @class = "form-control"}) 
     <div class="input-group-append">
          <span class="input-group-text"><i class="fa fa-calendar"></i></span>
     </div>
</div>

这是我在 c# 中的属性:

    [DisplayFormat(DataFormatString = "{0:MM/yyyy}")]
    public DateTime? Mes { get; set; }

当我验证用户输入的日期时,我使用这个验证器方法:

$.validator.methods.date = function (value, element) {
    return this.optional(element) || moment(value, "DD/MM/YYYY", true).isValid();

这适用于日期,但现在我需要验证 MM/YYYY。此验证失败,因为在此方法中收到的值没有日期部分 DD/。

我想为日期维护这个验证器方法并为几个月创建一个新的验证器。我必须如何进行?我是否必须在服务器中创建与客户端验证方法相关联的自定义验证器?是否可以在客户端中仅创建验证规则并覆盖当前正在执行的日期方法?如果是这样,应该怎么做?

标签: asp.net-mvcbootstrap-datepicker

解决方案


推荐阅读