Maison > développement back-end > C++ > Comment le routage personnalisé dans MVC peut-il gérer les chemins URL dynamiques à plusieurs niveaux?

Comment le routage personnalisé dans MVC peut-il gérer les chemins URL dynamiques à plusieurs niveaux?

Barbara Streisand
Libérer: 2025-01-29 09:51:14
original
375 Les gens l'ont consulté

How Can Custom Routing in MVC Handle Multi-Level Dynamic URL Paths?

Niveaux multiples dans le routage personnalisé MVC

Problème:

Dans le contexte de la construction d'un Système de gestion de contenu personnalisé (CMS), le besoin se produit pour les structures de trajet URL dynamiques qui permettent à un administrateur de définir des niveaux de trajet personnalisés, tels que "newslocalmynewdog" ou "ArticleseventsConventionsmyCon". "

Solution:

Sous-classe Routebase personnalisée:

Pour réaliser ce scénario de routage personnalisé, créant une sous-classe de base de route personnalisée, telle que CustomPageroute, est essentielle. Cette classe définit la logique pour déterminer si une demande correspond à un itinéraire spécifique et génère le chemin d'établissement d'URL correspondant.

Logique de correspondance:

La méthode GetRoutedata dans CustomPageroute est responsable de la responsabilité de Les demandes entrantes correspondantes aux chemins de style CMS. Il extrait le chemin virtuel de l'URL de demande et tente de le faire correspondre à une liste de chemins connus stockés dans le cache.

URL de génération:

La méthode GetVirtualPath génére Chemins d'URL pour les actions de contrôleur spécifiques et les valeurs d'itinéraire. Il utilise la même logique de correspondance que dans getRoutedata et renvoie le chemin virtuel qui correspond aux paramètres de demande.

Enregistrement d'itinéraire:

être enregistré auprès du système de routage MVC à l'aide de la méthode Routes.Add. La méthode MapRoute est utilisée pour enregistrer une route par défaut pour gérer toutes les autres demandes non adaptées par l'itinéraire personnalisé.

Contrôleur et action:

La route personnalisée s'attend à un contrôleur Nommé CustomPage avec une méthode d'action nommée Détails pour gérer les demandes correspondantes. La méthode des détails peut récupérer les données de la page correspondant aux paramètres d'itinéraire et afficher le contenu approprié.

Exemple de code:

// Custom RouteBase Subclass
public class CustomPageRoute : RouteBase
{
    // Route matching logic in GetRouteData
    // URL generation logic in GetVirtualPath
}

// Route Registration
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.Add(name: "CustomPage", item: new CustomPageRoute());

// Default Route
routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

// Custom Page Controller
public class CustomPageController : Controller
{
    public ActionResult Details(Guid id)
    {
        // Retrieve page data and display content
        return View();
    }
}
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