Heim > Backend-Entwicklung > C++ > Wie kann ich die Modellvalidierung in der ASP.NET-Web-API effektiv handhaben?

Wie kann ich die Modellvalidierung in der ASP.NET-Web-API effektiv handhaben?

Mary-Kate Olsen
Freigeben: 2024-12-24 15:18:10
Original
584 Leute haben es durchsucht

How Can I Effectively Handle Model Validation in ASP.NET Web API?

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; }
}
Nach dem Login kopieren

In Ihrer API Controller haben Sie eine Post-Aktion:

public void Post(Enquiry enquiry)
{
    enquiry.EnquiryDate = DateTime.Now;
    context.DaybookEnquiries.Add(enquiry);
    context.SaveChanges();
}
Nach dem Login kopieren

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();
    }
}
Nach dem Login kopieren

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);
        }
    }
}
Nach dem Login kopieren

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();
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage