Maison > développement back-end > C++ > Comment gérer les URL avec des caractères spéciaux dans le routage ASP.NET Web API 2 ?

Comment gérer les URL avec des caractères spéciaux dans le routage ASP.NET Web API 2 ?

Barbara Streisand
Libérer: 2025-01-05 03:19:42
original
822 Les gens l'ont consulté

How to Handle URLs with Special Characters in ASP.NET Web API 2 Routing?

Routage avec des caractères spéciaux dans MVC Web API 2

Problème :
Tentative d'accès à des ressources à l'aide d'URL contenant des caractères spéciaux, tels que points (`.') dans le segment de chemin, entraîne une "Erreur HTTP 404.0 - Introuvable" erreur.

Configuration :
L'exemple de contrôleur et WebApiConfig fournis dans la question :

// PeopleController.cs
public class PeopleController : ApiController
{
    // ...
}

// WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
    // ...

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

Solution :
À autoriser les caractères spéciaux dans le segment de chemin, tels que les points, modifier la route WebApiConfig comme suit :

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

Ce modèle d'itinéraire ajoute un paramètre d'itinéraire fourre-tout nommé {*path} qui capture tous les segments de chemin restants, y compris les caractères spéciaux comme les points.

Exemple :

http://somedomain.com/api/people/staff.33311/
Copier après la connexion

En ajoutant une barre oblique (/) à la fin de l'URL, la requête peut être acheminée vers l'action du contrôleur qui gère le segment de chemin, dans ce cas staff.33311.

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