在我的 ASP.Net mvc3 Razor项目中,我必须实现日期验证。我的格式是 dd-mm-yyyy.我以不同的方式尝试,但没有一种工作正常.我需要一个简单的。我的问题是是否有任何正则表达式。
我的型号代码
{
[Table("tbl_Employee")]
public class Employee
{
[Key]public int EmpId { get; set; }
[Required(ErrorMessage="Employee First Name is Required")]
public string FirstName { get; set; }
public string MiddleName { get; set; }
[Required(ErrorMessage="Employee Last Name is Required")]
public string LastName { get; set; }
public int Age{get;set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime DateOfBirth { get; set; }
public string Address { get; set; }
public string Position { get; set; }
public string Department { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime DateOfJoining { get; set; }
public string EducationalQuali { get; set; }
public string Experience { get; set; }
public string Others { get; set; }
}
查看代码
<div class="col-lg-10" >@Html.TextBoxFor(model => model.DateOfBirth, new { @class = "form-control", placeholder = "Date/Month/Year" })</div>
我使用了一个占位符向用户显示"这是格式"。但它也从用户那里产生了问题,如何解决这个问题?
您可以使用以下模式使用正则表达式属性类修饰模型属性,
^(0[1-9]|[12][0-9]|3[01])[- /](0[1-9]|1[012])[- /](19|20)[0-9][0-9]$
它将验证以下日期格式,
-
dd/MM/yyyy
-
dd-MM-yyyy
如果属性值满足模式,则该属性值将设置为有效。您可以在ErrorMessage
属性中设置自定义错误消息。
[RegularExpression("^(0[1-9]|[12][0-9]|3[01])[- /](0[1-9]|1[012])[- /](19|20)[0-9][0-9]$", ErrorMessage="")]
public DateTime DateOfBirth { get; set; }
这在服务器端和客户端都很好用。对于更适合良好用户体验的客户端,不要忘记打开不显眼的验证,并在网页中包含jquery.validation.js
和jquery.validation.unobtrusive.js
。:)