Frage

ich brauche das folgende Szenario zu modellieren, aber ich kann es nicht mit dem MvcSitemapProvider (ich glaube, mein Problem auch direkt den Standardsitemap) erhalten zu arbeiten. Ich mag die Standard-Paniermehl richtig mit meinen dynamischen Daten arbeitet Griff bekommen.

Ich habe eine Liste von products, die von category gruppiert sind, die eine parent-category haben

  
      
  • parent
  •   
    •   
    • Kategorie
    •   
  •   
    •   
      •   
      • Produkt
      •   
    •   
  •   

Ich mag die folgende URL verwenden können (s):

  

(1) / Produkte
   (2) / Produkte / Hauptkategorie
   (3) / Produkte / Hauptkategorie / Kategorie
   (4) / Produkte / Hauptkategorie / Kategorie / Produkt

Offensichtlich meine Lösung unten ist nicht optimal.

Der Products Knoten in der XML-Sitemap nicht über Childnodes, so dass sie wird nicht in meinem Menü auf.

Ich habe ein Zwischenobjekt erstellt, die die Kategorie Auswahl und Kategorien ergänzt, so dass sie in meinem Menü angezeigt. Aber das wird nicht das Problem beheben, wie andere Steuerelemente (Brotkrumen) nur sagen, dass ich auf / Produkte.

Soll ich meine Routen ändern oder meine Sitemap Definition ändern? Oder vielleicht etwas anderes?


Im Moment habe ich die folgende:

  • 2 Routes
    1 / Produkte, / Produkte / Hauptkategorie und / Produkte / Hauptkategorie / Kategorie -> Zuordnung zu ProductsController.Index ()
    1 / Produkte / Hauptkategorie / Kategorie / Produkt -> Zuordnung zu ProductsController.Product ()
  • 1 Eintrag im Verzeichnis
    mit dynamicParameters definiert (Hauptkategorie; Kategorie)

Global.asax Routendefinition:

    routes.MapRoute( _
        "Product", _
        "Products/{MainCategoryName}/{CategoryName}/{ProductName}", _
        New With {.controller = "Products", .action = "Product"} _
    )

    routes.MapRoute( _
        "Products", _
        "Products/{MainCategoryName}/{CategoryName}", _
        New With {.controller = "Products", .action = "Index", .GroupName = "", .CategoryName = ""} _
    )

Ich habe folgende Einträge in meiner Sitemap:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
  <mvcSiteMapNode controller="Home" action="Index" title="Home" description="Homepage">
    <mvcSiteMapNode controller="Products" action="Index" title="Products" description="" isDynamic="true" dynamicParameters="MainCategoryName;CategoryName" />
  </mvcSiteMapNode>
</siteMap>
War es hilfreich?

Lösung

Ich bin derzeit eine benutzerdefinierte SiteMapProvider. Ich bin nach wie vor beibehalten auch eigene Routen sie in keiner Weise im Zusammenhang.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top