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
Libérer: 2025-01-05 08:11:44
original
280 Les gens l'ont consulté

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
Copier après la connexion

Configuration de la route par défaut :

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

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/
Copier après la connexion

En ajoutant la barre oblique, la route devient :

api/{controller}/{id}/{trailingSegment}
Copier après la connexion

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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal