我有以下代码:
[DisplayName("58.Date and hour of birth")]
[DataType(DataType.DateTime, ErrorMessage = "Please enter a valid date in the format dd/mm/yyyy hh:mm")]
[Range(typeof(DateTime), "1/1/2011", "1/1/2016")]
[RequiredToClose]
public object V_58 { get; set; }
我想强制包含时间(格式为 hh:mm)而不仅仅是日期。此代码认为 1/1/2011 有效,但实际上不应该,因为它不包含小时,关于如何表达正确格式的任何线索? (日/月/年 时:分)
你可以自己写ValidationAttribute
并用它装饰房产。您覆盖IsValid
方法与你自己的逻辑。
public class MyAwesomeDateValidation : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dt;
bool parsed = DateTime.TryParse((string)value, out dt);
if(!parsed)
return false;
// eliminate other invalid values, etc
// if contains valid hour for your business logic, etc
return true;
}
}
最后,装饰你的财产:
[MyAwesomeDateValidation(ErrorMessage="You were born in another dimension")]
public object V_58 { get; set; }
注意:要警惕属性上的多个验证属性,因为如果没有更多自定义,则无法确定它们的评估顺序,随后如果验证逻辑重叠,您的错误消息可能无法准确描述您的错误到底是什么与财产(是的,这是一个连续的句子)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)