Je travaille sur un moteur CMS/Webshop avec un frontal MVC 3. Je veux être en mesure de définir des "alias" d'URL pour l'exécution dynamique de contenu/produits, et je veux être en mesure d'acheminer ces URL vers des actions de contrôleur MVC.
Par exemple, je veux être en mesure de définirMVC 3 Routage personnalisé depuis sql
~/Produits/Cartes mères/{fabricant}/{} uniqueName
~/HugeSavings/{} uniqueName
~/Produits/{} uniqueName etc.
pour mapper sur la même action de contrôleur Display (string uniqueName) dans ProductsController. Ces modèles d'URL sont dynamiques, même les règles de leur ordre ou composition sont NON DEFINI au moment du design, le contenu du modèle ou de la règle du modèle peut changer en cours d'exécution sans redémarrer l'application, ils sont stockés dans SQL, mais doivent être mis en cache. Chaque modèle a une cible qui peut être une URL MVC typique comme
Produits/Affichage/{} UniqueName
ou un lien direct comme
`http: // somestuff. com/stuff.aspx? name = {uniqueName}.
Chaque solution que j'ai trouvé utilisé
RegisteredRoutes.Clear();
RebuildRoutes();
qui est horrible, à cause de cela pour l'ajout d'un nouveau modèle pour un produit (ou catégorie) Je dois interroger la base de données des milliers de produits et leurs modèles correspondants. Donc, puis-je modifier les itinéraires sans effacer ou redémarrer l'application? Est-ce que je peux "injecter" une certaine logique au routage SANS avoir à recoder l'ensemble de la chose "Rechercher le contrôleur et l'action et analyser les paramètres".
Si je veux supprimer les anciens ou modifiés, comment puis-je les identifier? Par motif seulement? Puis-je ajouter un ID aux itinéraires par exemple? (car les motifs peuvent être modifiés, non seulement ajoutés et supprimés, et au moment de l'enregistrement, je ne connais pas nécessairement l'ancien motif, mais je connais l'identifiant du motif enregistré) – TDaver
Vous pouvez identifier les itinéraires par nom. http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.aspx – jfar