Heim >Backend-Entwicklung >C++ >Wie gehe ich mit Punktzeichen in URL-Parametern der MVC Web API 2 um?

Wie gehe ich mit Punktzeichen in URL-Parametern der MVC Web API 2 um?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-05 08:11:44279Durchsuche

How to Handle Dot Characters in MVC Web API 2 URL Parameters?

So berücksichtigen Sie Punktzeichen in MVC Web API 2-URL-Parametern

In MVC Web API 2-Anwendungen kann es wünschenswert sein, URLs zuzulassen Parameter müssen Punktzeichen („.“) enthalten, um die Kompatibilität mit bestimmten URL-Formaten zu gewährleisten. Standardmäßig betrachtet das Framework jedoch Punkte als Routentrennzeichen und generiert HTTP 404-Fehler, wenn diese Zeichen vorhanden sind.

Problem:

Die folgende URL, die dies versucht Ruft eine Person mit der ID „staff.33311“ ab und löst einen 404-Fehler aus Fehler:

http://somedomain.com/api/people/staff.33311

Standardroutenkonfiguration:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

Diese Routenkonfiguration geht davon aus, dass „id“ ein einzelnes Segment ist und Punkte darin nicht zulässig sind .

Lösung:

Um Punkte in URL-Parametern zuzulassen, können Sie anhängen ein abschließender Schrägstrich zur URL. Dies signalisiert ASP.NET MVC, dass der Parameter über das erste Segment hinaus fortgesetzt wird.

http://somedomain.com/api/people/staff.33311/

Durch Hinzufügen des Schrägstrichs wird die Route zu:

api/{controller}/{id}/{trailingSegment}

ASP.NET MVC interpretiert jetzt „staff.33311“ als Wert für die „id“ Parameter.

Beispiel

Mit der aktualisierten Routenkonfiguration wird der folgende Code im PeopleController die URL mit dem Punktzeichen erfolgreich verarbeiten:

public IHttpActionResult GetPerson(string id)
{
    var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower()));
    if (person == null)
        return NotFound();

    return Ok(person);
}

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Punktzeichen in URL-Parametern der MVC Web API 2 um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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