在我的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