Je dois utiliser le fournisseur MVCSitemap dans une application Web, mais je ne peux pas le faire fonctionner là où j'ai des URLs dynamiques.Fil d'Ariane avec MVC Le plan Sitemap montre un seul niveau
J'ai une liste de catégories, qui peuvent avoir des parents et des enfants. Par exemple, si je clique sur une catégorie, le fil d'Ariane ressemble à ceci:
Home > Filter
si je clique sur un enfant du filtre, je suis arrivé:
Filter > Air filter
le lien Accueil disparait. Si je clique sur les enfants du « filtre à air » Je suis arrivé:
Air filter > air filter children
et ainsi de suite. Toujours les deux derniers niveaux sont affichés, et si je clique sur le premier niveau, retourne toujours à la page d'accueil.
Ceci est mon MvcSitemap:
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode title="Product" controller="Product" action="SubCategories" preservedRouteParameters="selected,category,id,engineId">
<mvcSiteMapNode title="Details" controller="Product" action="ProductDetails" preservedRouteParameters="supplierName,code,name,prodId,-1"/>
</mvcSiteMapNode>
</mvcSiteMapNode>
Ceci est la méthode sous-catégories de contrôleur de produit:
[MvcSiteMapNode(Title = "Article", ParentKey = "SubCategories")]
[Route("{selected}-{category}-{id}-{engineId}")]
public ActionResult SubCategories(string selected, string category, int id, string engineId)
{
...........................
SiteMaps.Current.CurrentNode.Title = categoryName;
if(categoryRepository.GetCategoryByID(id).ParentId.HasValue)
{
int parentId = categoryRepository.GetCategoryByID(id).ParentId.Value;
string parentName = categoryRepository.GetCategoryByID(parentId).Name;
SiteMaps.Current.CurrentNode.ParentNode.RouteValues["id"] = id;
SiteMaps.Current.CurrentNode.ParentNode.Title = parentName;
}
Pouvez-vous s'il vous plaît aidez-moi, ce que je fais mal ici? J'ai vérifié toutes les explications sur le web, j'ai essayé de plusieurs façons, mais aucune d'entre elles n'a résolu ce problème.
Merci pour le conseil. Ce n'est pas exactement ce que je cherchais, mais je vais essayer de l'utiliser dans mon exemple. – Orsi