2012-05-22 2 views
1

J'ai un site MVC qui utilise l'URL avec des traits d'union (pour l'optimisation SEO), par exemple:MvcSiteMapProvider et url avec des traits d'union

www.domain.com/about-us/know-our-services 

Maintenant, je l'ai mis à exécution les MvcSiteMapProvider pour générer panure dynamique, mais pour le URL avec des tirets cela ne fonctionne pas (ne le trouve pas sur le sitemap).

Comment puis-je résoudre ce problème?

+0

1er - semble -> ne sert pas, 2ème - * quel est le problème? nous avons besoin de plus de détails pour vous aider. –

+0

Comment générez-vous le fil d'Ariane dynamique? – Xharze

Répondre

0

La méthode recommandée pour générer des URL personnalisées consiste à ajuster vos itinéraires pour créer votre schéma d'URL. Pour que MvcSiteMapProvider génère les URL correctes, vous devez vous assurer que vos routes sortantes peuvent être résolues.

Les routes sont un mappage bidirectionnel. Les routes entrantes sont déterminées dans la méthode GetRouteData de la classe RouteBase. Les routes sortantes sont déterminées par la méthode GetVirtualPath de la classe RouteBase. La route incomming est ce que MVC utilise pour déterminer quelle URL correspond à un contrôleur et une action donnés. La méthode GetVirtualPath utilisée par MVC et MvcSiteMapProvider pour résoudre l'URL, elle doit donc être implémentée pour que MvcSiteMapProvider fonctionne avec les URL personnalisées. Jetez un oeil à Custom Routes in ASP.NET MVC pour avoir des idées sur la façon dont ces méthodes peuvent être implémentées en sous-classant RouteBase. Ces mêmes idées s'appliquent lors de l'enregistrement de la classe Route - vous devez vous assurer que la résolution bidirectionnelle fonctionne.

Questions connexes