Heim >Backend-Entwicklung >C++ >Wie gehe ich mit Punktzeichen in URL-Parametern der MVC Web API 2 um?
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!