嗨,我正在尝试为我的注册页创建一致的验证。
[DateTimeValidation(ErrorMessageResourceType = typeof(EnValidationResources), ErrorMessageResourceName = "__LK_UserModel_BirthDate_Is_Required__")]
public DateTime BirthDate { get; set; }
当我进行测试时,我意识到即使我为DateTime添加了自己的验证属性:
public class DateTimeValidation: ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var dateTimeString = value.ToString();
DateTime dateTimeParseResult;
DateTime.TryParse(dateTimeString, out dateTimeParseResult);
if (dateTimeParseResult.Equals(default(DateTime)))
{
return new ValidationResult(ErrorMessageString);
}
return null;
}
}
如果用户发布了null dateTime,我仍然会收回此响应文本:
"不能将null值转换为system.datetime。路径'出生日期',行 1,位置17。"
如何使asp.net web.api停止返回内置错误响应文本?
尝试:
[DateTimeValidation(ErrorMessageResourceType = typeof(EnValidationResources), ErrorMessageResourceName = "__LK_UserModel_BirthDate_Is_Required__")]
public DateTime? BirthDate { get; set; } //use nullable type.