是否可以使用数据注释验证字符串属性以查看它是否是有效日期?

时间:2013-04-25 14:14:46

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework-4 entity-framework-5

我有一个实体的字符串属性。我正在通过表单将Date值放入其中,即“01/01/2000”。是否可以验证输入的数据是否有效,即:

假设英国日期格式如下:

“32/01/2000”无效, “31/01/2000”有效, “测试”无效

我的POCO EF属性代码如下:

[System.ComponentModel.DataAnnotations.DataType(System.ComponentModel.DataAnnotations.DataType.Date, ErrorMessage = @"Not a valid date")]


public virtual string DateOfBirth

这应该工作......还是......

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用RegularExpression注释,但至少可以说凌乱。您最好将该属性转换为DateTime

以下是使用RegularExpression屏蔽你的眼睛)的方法:

[RegularExpression("@(^((((0[1-9])|([1-2][0-9])|(3[0-1]))|([1-9]))\x2F(((0[1-9])|(1[0-2]))|([1-9]))\x2F(([0-9]{2})|(((19)|([2]([0]{1})))([0-9]{2}))))$)", ErrorMessage = @"Not a valid date")]
public virtual string DateOfBirth { get; set; }

答案 1 :(得分:0)

使用其中一种DateTime Parse方法?

DateTime dob;
try
{
  DateTime dob = DateTime.Parse(myString, ...)
}
catch
{
  // handle error...
}
// string entered is valid