我有一个属性ExpiredDate在MVC中定义
[required] [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")] public DateTime? ExpirationDate { get; set; }
我想验证一个页面上的日期格式不正确.
我使用的日期格式是MM / dd / yyyy.
解决方法
您应该将
DataType
属性与
DataType.Date
一起包含.这些都可以在
System.ComponentModel.DataAnnotations
命名空间中找到.
[required] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")] public DateTime? ExpirationDate { get; set; }
This answer还包括一些更多的属性.
更新以包括在ASP.NET MVC4中启用客户端验证的说明
要启用客户端验证,您需要:
<%: Scripts.Render("~/Scripts/jquery.validate.min.js") %> <%: Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js") %>
>将其添加到web.config
<appSettings> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings>
>在使用@ Html.ValidationMessageFor()时使用这个CSS,以便它被初始隐藏并通过javascript验证显示
<style type="text/css"> /* styles for validation helpers */ .field-validation-error { color: #e80c20; font-weight: bold; } .field-validation-valid { display: none; } input.input-validation-error { border: 1px solid #e80c20; } input[type="checkBox"].input-validation-error { border: 0 none; } .validation-summary-errors { color: #e80c20; font-weight: bold; font-size: 1.1em; } .validation-summary-valid { display: none; } </style>