Ich arbeite an einer Webshop-ähnlichen asp.net mvc 4-Website mit einem Daten-Layer für den WCF-Dienst. Meine Anwendung wird mit Hauptkategorien, Unterkategorien und Produkten erstellt. Jedes Produkt kann nur in einer Untergruppe sein und meine URLs sind wie folgt aus:Wie man einen neuen MvcSitemapProvider-Knoten zur Laufzeit hinzufügt
/maincategoryname/subcategoryname/{productid}/producttitle
und die entsprechenden Brotkrumen:
Home> Hauptkategorie> Unterkategorie> Producttitle
Ich verwende derzeit MvcSitemapProvider, um meine Navigationsmenüs und Breadcrumbs zu generieren. Ich lade alle URLs als dynamische Knoten ohne Cache. Diese Lösung funktioniert für einige Produkte, aber wenn ich 1000 Produkte hinzufüge, dauert die Sitemap 6,5 Sekunden, was viel zu lang ist.
Ich habe das Zwischenspeichern in MvcSitemapProvider aktiviert. Auf diese Weise lädt die Anwendung viel schneller. Wenn ein Benutzer jedoch ein neues Produkt hinzufügt und zu diesem neuen Produkt (Seite) navigiert. Die URL befindet sich noch nicht in der Sitemap-Datei, da sie den Cache verwendet. Auf diese Weise werden meine Navigation und Breadcrumbs nicht generiert.
Meine Frage ist:
Ist es möglich, einen neuen Knoten zur Sitemap zur Laufzeit hinzuzufügen, nachdem ein Benutzer ein neues Produkt ergänzt?