Gegeben Ich habe ein Mitarbeiter-Modell mit einem Nullable-GenderIDASP.NET Web API 2.2 Modell Bindung Kurzschlüsse individuelle Modellvalidierung
public class Employee
{
public int? GenderID { get; set; }
}
Und eine benutzerdefinierte Fluent Prüfungsregel auf GenderID mit FluenValidation
RuleFor(x=> x.GenderID).NotNull().WithMessage("Please provide a valid Gender");
Wenn ich POST
ein Mitarbeiter an den folgenden Endpunkt mit einer NULL
GenderID
Dann der Service gibt eine Validierung zurück Zusammenfassung wie erwartet.
[HttpPost("Employee/Create")]
public IActionResult Create([FromBody]Employee employee)
{
try
{
if (!ModelState.IsValid)
{
// return validation summary (code omitted for brevity)
}
var result = _respository.CreateEmployee(employee);
return Ok();
}
}
Wenn ich Mitarbeiter Modell ändern Nicht-Nullable-GenderID
public class Employee
{
public int GenderID { get; set; }
}
haben dann den Dienst liefert 400 Bad Request Antwort ohne benutzerdefinierte Validierungs Verarbeitung. Die Validierungszusammenfassung muss an die Benutzeroberfläche gebunden sein.
Der einzige Grund dafür, dass GenderID als Nullwert zulässig ist, besteht darin, dass die Validierungszusammenfassung aus benutzerdefinierten Validatoren erstellt werden kann.
Wie kann ich die benutzerdefinierte Validierung anwenden, ohne dass alle Modelleigenschaften als Nullwert festgelegt werden müssen?
Ja Ich habe den Grund bereits erklärt, aber ich versuche, ein Programmiermodell in WebAPI zu finden, das mir erlaubt, Befehle zu erstellen, die für akzeptable Werte repräsentativer sind. Die generierte Dokumentation, die meine API begleitet, ist irreführend, wenn ich erwähne, dass GenderId NULL-fähig sein kann. – puri