Heim >Backend-Entwicklung >C++ >Wie kann ich die Modellvalidierung in der ASP.NET-Web-API effektiv handhaben?
Umgang mit der Modellvalidierung in der ASP.NET-Web-API
Bei der Arbeit mit Daten in Ihren ASP.NET-Web-API-Anwendungen spielt die Modellvalidierung eine wichtige Rolle spielen eine entscheidende Rolle bei der Gewährleistung der Datenintegrität. Die ModelState-Eigenschaft bietet einen praktischen Mechanismus zum Validieren von Anforderungsdaten anhand der Regeln Ihres Modells.
Stellen Sie sich das folgende Szenario vor:
Sie haben ein Modell:
public class Enquiry { [Key] public int EnquiryId { get; set; } [Required] public DateTime EnquiryDate { get; set; } [Required] public string CustomerAccountNumber { get; set; } [Required] public string ContactName { get; set; } }
In Ihrer API Controller haben Sie eine Post-Aktion:
public void Post(Enquiry enquiry) { enquiry.EnquiryDate = DateTime.Now; context.DaybookEnquiries.Add(enquiry); context.SaveChanges(); }
Um die Modellvalidierung zu implementieren, können Sie ModelState.IsValid verwenden Eigenschaft:
public void Post(Enquiry enquiry) { if (ModelState.IsValid) { enquiry.EnquiryDate = DateTime.Now; context.DaybookEnquiries.Add(enquiry); context.SaveChanges(); } }
Wenn das Modell gültig ist, fährt die Aktion mit der Erstellung der Entität in der Datenbank fort. Andernfalls wird eine 400-Antwort (Bad Request) mit den Validierungsfehlermeldungen zurückgegeben.
Für eine sauberere Trennung von Bedenken können Sie auch einen Aktionsfilter für die Modellvalidierung verwenden:
using System.Net; using System.Net.Http; using System.Web.Http.Controllers; using System.Web.Http.Filters; namespace System.Web.Http.Filters { public class ValidationActionFilter : ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext actionContext) { var modelState = actionContext.ModelState; if (!modelState.IsValid) actionContext.Response = actionContext.Request .CreateErrorResponse(HttpStatusCode.BadRequest, modelState); } } }
Anwenden Fügen Sie diesen Filter Ihrer Post-Aktion hinzu:
[ValidationActionFilter] public void Post(Enquiry enquiry) { enquiry.EnquiryDate = DateTime.Now; context.DaybookEnquiries.Add(enquiry); context.SaveChanges(); }
Durch die Implementierung der Modellvalidierung mit einem dieser Ansätze können Sie sicherstellen, dass Ihr API-Endpunkt nur gültige Daten akzeptiert und bereitstellt aussagekräftige Fehlermeldungen für Benutzer.
Das obige ist der detaillierte Inhalt vonWie kann ich die Modellvalidierung in der ASP.NET-Web-API effektiv handhaben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!