ASP.NET MVC3 Razor中日期的模型验证

时间:2014-01-15 12:50:11

标签: asp.net-mvc-3 validation datetime razor

在我的 ASP.Net mvc3 Razor 项目中,我必须实现日期验证。我的格式是dd-mm-yyyy.i以不同的方式尝试但没有一种方法正常。我需要一个简单的一个。我的问题是是否有任何正则表达式。

我的型号代码

{
    [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>

我使用了一个占位符来向用户显示“”这是格式“。但它也是从user.how创建问题来解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用以下模式使用 RegularExpression Attribute Class 修饰模型属性,

^(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.jsjquery.validation.unobtrusive.js。 :)