【问题标题】:mvc stop clientside validation on a certain field?mvc 在某个字段上停止客户端验证?
【发布时间】:2014-05-19 13:06:34
【问题描述】:

我的模型中有以下属性:

    [DisplayName("Pay to RE Date")]
    public DateTime? PaymentToRE { get; set; }

每当我输入无效日期时,我都会收到以下消息:

The value 'asdas' is not valid for Pay to RE Date.

但是,我不希望此时发生验证,因为我还有其他需要验证的属性并希望所有属性一起验证。其他的要求我在数据库中查找信息,所以我不想在这个字段上进行客户端验证。有没有办法禁用它?

这在我看来如下:

            @Html.LabelFor(model => model.PaymentToRE, new { @class = "control-label col-md-2" })
            <div class="col-md-4">
                @{Html.EnableClientValidation(false);}
                @Html.TextBoxFor(model => model.PaymentToRE, "{0:MM/dd/yyyy}", new { @class = "datepicker-input form-control" })
                @{Html.EnableClientValidation(true);}
                @Html.ValidationMessageFor(model => model.PaymentToRE)
            </div>

我尝试使用 Html.EnableClientValidation 方法,但这似乎并没有阻止它。而且我不想为整个应用程序禁用 ClientValidation,因为我在其他表单上需要它。

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-mvc-validation


【解决方案1】:

我猜你正在使用 jQuery 验证插件。您可以使用其选项ignorehttp://jqueryvalidation.org/validate/#ignore

给你的文本框添加一个忽略类:

@Html.TextBoxFor(model => model.PaymentToRE, "{0:MM/dd/yyyy}", new { @class = "datepicker-input form-control no-client-validation" })

并将新类no-client-validation添加到jQuery验证选项ignore

$.validator.setDefaults({
    ignore: '.no-client-validation, :hidden' //:hidden is default value
});

编辑

或者你切换到远程验证,在你的情况下可能是开销。

http://msdn.microsoft.com/en-us/library/gg508808%28vs.98%29.aspx

【讨论】:

    【解决方案2】:

    使用这个:

        $('form').validate({
            ignore:"#PaymentToRE"
        });
    

    验证插件将忽略 id=PaymentToRE 的输入

    【讨论】:

      【解决方案3】:

      您不能在 DateTime 属性中分配字符串值,请将您的属性更改为此

      [DisplayName("Pay to RE Date")]
      public String PaymentToRE { get; set; }
      

      【讨论】:

      • 他没有询问转换任何值,他只是想禁用对某个属性的客户端验证。
      • @Simon 我告诉的解决方案是唯一的方法,我遇到了这个问题,这就是我知道的原因。
      • 说真的,我不知道你的问题是什么,但 OP 的问题绝对不一样。顺便说一句,我正在使用 jQuery 验证选项ignore,效果很好......
      猜你喜欢
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      相关资源
      最近更新 更多