我的模型中有以下属性:
[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,因为我需要在其他表单上使用它。
答案 0 :(得分:4)
我猜你正在使用jQuery验证插件。您可以使用其选项ignore
。 http://jqueryvalidation.org/validate/#ignore
向您的文本框添加一个忽略类:
@Html.TextBoxFor(model => model.PaymentToRE, "{0:MM/dd/yyyy}", new { @class = "datepicker-input form-control no-client-validation" })
将jQuery验证选项ignore
添加到新类no-client-validation
:
$.validator.setDefaults({
ignore: '.no-client-validation, :hidden' //:hidden is default value
});
修改强>
或者你切换到远程验证,在你的情况下可能是开销。
http://msdn.microsoft.com/en-us/library/gg508808%28vs.98%29.aspx
答案 1 :(得分:1)
使用此:
$('form').validate({
ignore:"#PaymentToRE"
});
验证插件将忽略id=PaymentToRE
答案 2 :(得分:-2)
您无法在DateTime属性中指定字符串值,请将您的属性更改为此
[DisplayName("Pay to RE Date")]
public String PaymentToRE { get; set; }