In meinem Web-API-Projekt, habe ich Modellklasse RegisterModel, Es gibt nullable Datum Zeit, ich möchte Eingang Eingabe von Benutzer nur überprüfen, wenn Benutzer dob eingegeben hat. Ich Json.Net Serializer
mitValidate Nullwert Datum Zeit mit fließenden Validierung
meine Modellklasse
[Validator(typeof(RegisterModelValidator))]
public class RegisterModel
{
[JsonProperty("dob")]
public Nullable<DateTime> DOB { get; set; }
}
mein Validator
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;
}
}
Aber wenn ich pass Wert zB "dob": "123 April 2015" Es ModelState.IsValid
gibt false zurück, gibt aber keine Validierungsnachricht zurück.
Zuerst verwende ich 'FluentValidation' nicht' DataAnotation'. Zweite Meine Eigenschaft ist vom Typ 'DateTime' nicht Zeichenfolge. So sehen Sie bitte, bevor Sie Ihre Antwort posten. – Programmer