Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 ASP.NET MVC3 Razor中日期的模型验证_Asp.net Mvc 3_Validation_Datetime_Razor - Fatal编程技术网

Asp.net mvc 3 ASP.NET MVC3 Razor中日期的模型验证

Asp.net mvc 3 ASP.NET MVC3 Razor中日期的模型验证,asp.net-mvc-3,validation,datetime,razor,Asp.net Mvc 3,Validation,Datetime,Razor,在我的ASP.Net mvc3 Razor项目中,我必须实现日期验证。我的格式是dd-mm-yyyy。我尝试了不同的方法,但没有一种效果良好。我需要一个简单的方法。我的问题是,是否有相同的正则表达式 我的型号代码 { [Table("tbl_Employee")] public class Employee { [Key]public int EmpId { get; set; } [Required(ErrorMessage="Empl

在我的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>
查看代码

{
    [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>
@Html.TextBoxFor(model=>model.DateOfBirth,新的{@class=“formcontrol”,placeholder=“Date/Month/Year”})

我使用了一个占位符向用户显示“这是格式”。但这也给用户带来了问题。如何解决这个问题?

您可以使用以下模式装饰模型属性

^(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
。)