2014-05-12 4 views
0

Je souhaite associer plusieurs sitemaps à mvcsitemapprovider lors de l'événement session_start car les noms et les emplacements des sitemaps sont récupérés en fonction du type de client/utilisateur. Mais, selon les documents liés à mvcsitemapprovider, tous les * .sitemaps sont associés à mvcsitemapprovider lors du démarrage de l'application. Est-il possible, je peux fournir cette fonctionnalité en utilisant ce contrôle?Comment ajouter plusieurs fichiers * .sitemap à mvcsitemapprovider lors du démarrage de la session

Répondre

0

Il n'y a pas de fonctionnalité intégrée par session, mais vous pouvez implement your own ICacheProvider gérer cette exigence. Voir aussi MvcSiteMapProvider 4.0 - Extending the Cache et Multiple SiteMaps in One Application pour plus de conseils. Notez que la principale raison pour laquelle cela n'existe pas dans la boîte est que cela nécessiterait énormément de mémoire et n'atteindrait pas un très grand nombre d'utilisateurs. À moins que votre navigation ne soit complètement différente par utilisateur, je ne recommanderais pas d'utiliser cette approche. Une meilleure alternative consiste à utiliser le preservedRouteParameters approach pour forcer certaines valeurs de routage à correspondre à n'importe quelle valeur (dans votre cas userid ou clientid), puis utiliser ISiteMapNodeVisibilityProvider, SiteMapTitleAttribute et/ou la mise à jour manuelle des propriétés SiteMapNode par demande pour contrôler la visibilité du noeud .

S'il vous plaît voir ma question ouverte ici et me expliquer pourquoi vous voulez faire sur GitHub, car elle rend la plupart des fonctionnalités inutiles: https://github.com/maartenba/MvcSiteMapProvider/issues/16#issuecomment-22229604

Questions connexes