ASP.NET MVC 3绑定&验证日期到html文本框控件

本文关键字:html 文本 控件 日期 验证 MVC NET 绑定 ASP | 更新日期: 2023-09-27 18:10:38

我有一个SmallDateTime字段在我的Sql Server 2008数据库中存储用户的生日。

在我的"编辑个人资料"网页上,我有一个标准的textbox,我想将"生日"日期绑定到(不包括时间,因为这不是必需的)。目前我绑定到文本框,但它呈现完整的日期和时间。

此外,当用户更新他们的个人资料时,我希望能够验证生日文本框,确保指定的值符合dd/mm/yyyy,并且任何偏离都将通过页面上现有的验证摘要突出显示。

我该怎么做:

a)配置我的ViewModel中的Birthday属性以dd/mm/yyyy格式显示(不包括时间)。

b)在用户提交表单时验证生日(基于dd/mm/yyyy格式)?

ASP.NET MVC 3绑定&验证日期到html文本框控件

[DisplayFormat(DataFormatString="{0:dd/MM/yyyy}", ApplyFormatInEditMode=true)]
public DateTime DateOfBirth { get; set; }

这将为您提供字段的自动格式化(而无需手动执行)和验证。

我通常使用与DateTime对象配对的字符串属性,例如

public string MyDateStr 
{
   get 
   {
       return MyDateDate == null ? "" : MyDateDate.ToShortDateString();
   }
   set
   {
      // Usually a tryParse for the string value
   }
}

我知道这不是最规范的方法,但是到目前为止,这是我找到的最快的方法。

HTH

m .

a)你可以使用。toshortdatestring来呈现没有时间的日期时间。格式仍然依赖于全球化默认值。

b)来验证,您可以在模型上使用数据注释,如下所示:

[DataType(DataType.DateTime, ErrorMessage = "Please enter a valid date in the format dd/mm/yyyy")]
public DateTime Birthday { get; set; }