2017-08-03 4 views
1

J'ai une application Web mvc asp.net distribuée. L'interface utilisateur de l'application est répartie entre différents composants et chaque composant a une valeur d'hôte différente, ce qui signifie que l'application a différentes URL pour différentes parties de l'interface utilisateur. Il existe un seul fichier sitemap XML partagé entre les différents composants. Les nœuds du sitemap utilisent des URL relatives et un attribut indiquant quelle valeur d'hôte doit être utilisée et la valeur de l'hôte est stockée dans un fichier de configuration, car l'application existe dans plusieurs environnements différents et, en tant que telle, une URL complète dans le sitemap ne serait pas pratique. Compte tenu de tout cela, quand un nœud sitemap est rendu dans un lien de navigation, je dois modifier l'URL du nœud pour le rendre pleinement qualifié en utilisant l'hôte correct. Je peux le faire assez facilement avec la classe .net SiteMapNode.MvcSiteMapProvider - Modifier l'adresse du noeud

Mon problème est que j'ai besoin de faire quelque chose de similaire avec MvcSiteMapProvider. Je n'ai pas eu beaucoup de chance jusqu'à présent. Suggestions bienvenues.

Répondre

0

J'essaie l'approche discutée here, à savoir en utilisant un ISiteMapNodeUrlResolver personnalisé.

L'implémentation par défaut remplace déjà le nom d'hôte par un attribut hostName fourni en option dans un fichier sitemap xml. Dans mon implémentation personnalisée, j'ai recherché un paramètre de configuration basé sur l'attribut hostName pour arriver à une modification d'exécution basée sur un paramètre de configuration.

Jusqu'à présent, il semble fonctionner au besoin.