在我的web api项目中,我有模型类RegisterModel,有可以为空的日期时间,我想验证只有当用户输入dob时由用户输入的输入。 我使用Json.Net Serializer
通过流利的验证验证可以为空的日期时间
我的模型类
[Validator(typeof(RegisterModelValidator))]
public class RegisterModel
{
[JsonProperty("dob")]
public Nullable<DateTime> DOB { get; set; }
}
我验证
public class RegisterModelValidator : AbstractValidator<RegisterModel>
{
public RegisterModelValidator()
{
RuleFor(x => x.DOB).Must(BeAValidDate).WithMessage("Please enter valid date.");
}
private bool BeAValidDate(DateTime date)
{
if (date == default(DateTime))
return false;
return true;
}
private bool BeAValidDate(DateTime? date)
{
if (date == default(DateTime))
return false;
return true;
}
}
但是当我通过值,例如:“出生日期”: “123 2015年4月” 它ModelState.IsValid
返回false,但不返回验证消息。
首先我使用'FluentValidation'而不是'DataAnotation'。第二个My Property的类型是'DateTime'而不是字符串。所以请在发布您的答案之前看看。 – Programmer