我的Sql Server 2008数据库中有一个SmallDateTime
字段用于存储用户生日。
在我的“编辑个人资料”网页上,我有一个标准textbox
,我想将“生日”日期绑定到(不包括时间,因为这不是必需的)。目前我绑定到文本框但它正在呈现完整的日期和时间。
此外,当用户更新其个人资料时,我希望能够验证生日文本框,确保指定的值符合dd/mm/yyyy
,并且通过我现有的验证摘要突出显示任何偏差。页面。
我该怎么做:
a)在我的ViewModel中配置Birthday属性以dd/mm/yyyy
格式显示(不包括时间)。
b)当用户提交表单时验证生日(基于dd/mm/yyyy
格式)?
答案 0 :(得分:1)
[DisplayFormat(DataFormatString="{0:dd/MM/yyyy}", ApplyFormatInEditMode=true)]
public DateTime DateOfBirth { get; set; }
这应该可以让您自动格式化字段(无需手动执行)以及验证。
答案 1 :(得分:0)
我通常使用与DateTime对象配对的字符串属性,类似于
public string MyDateStr
{
get
{
return MyDateDate == null ? "" : MyDateDate.ToShortDateString();
}
set
{
// Usually a tryParse for the string value
}
}
我知道这不是规范的方式,但到目前为止,这是我发现的最快的。
HTH
微米。
编辑:对于验证内容,请参阅:other question on SO
答案 2 :(得分:0)
a)您可以使用.ToShortDateString无需时间渲染日期时间。格式仍取决于全球化默认值。
b)要验证,您可以使用模型上的数据注释来执行此操作:
[DataType(DataType.DateTime, ErrorMessage = "Please enter a valid date in the format dd/mm/yyyy")]
public DateTime Birthday { get; set; }