Maison >développement back-end >C++ >Comment gérer les caractères points dans les paramètres URL de MVC Web API 2 ?

Comment gérer les caractères points dans les paramètres URL de MVC Web API 2 ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 08:11:44281parcourir

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

Comment adapter les caractères de point dans les paramètres d'URL de MVC Web API 2

Dans les applications MVC Web API 2, il peut être souhaitable d'autoriser l'URL les paramètres doivent contenir des caractères points ("".") pour la compatibilité avec certains formats d'URL. Cependant, par défaut, le framework considère les points comme séparateurs de route et génère des erreurs HTTP 404 lorsque ces caractères sont présents.

Problème :

L'URL suivante, qui tente de récupérer une personne avec l'ID "staff.33311", lance un 404 erreur :

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

Configuration de la route par défaut :

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

Cette configuration de la route suppose que « id » est un segment unique et que les points ne sont pas autorisés à l'intérieur .

Solution :

Pour autoriser les points dans les paramètres d'URL, vous pouvez ajoutez une barre oblique à la fin de l'URL. Cela signale à ASP.NET MVC que le paramètre continue au-delà du premier segment.

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

En ajoutant la barre oblique, la route devient :

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

ASP.NET MVC va maintenant interpréter "staff.33311" comme valeur pour "id" paramètre.

Exemple

Avec la configuration de l'itinéraire mise à jour, le code suivant dans PeopleController gérera avec succès l'URL avec le caractère point :

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

    return Ok(person);
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn