Aggiunta di nodi a mvcsitemap in codice
-
13-12-2019 - |
Domanda
Sto costruendo un semplice cm che memorizza la navigazione / sitemap / struttura del sito in una tabella di database.Quando l'app si avvia posso creare i miei nodi sitemap in modo dinamico in base ai dati da quella tabella.
Il problema che sto avendo è quando un nuovo record viene aggiunto alla tabella o uno esistente viene aggiornato mentre l'app è in esecuzione che è necessario ricostruire la struttura del sito.Sembra abbastanza semplice ma non riesco a capire come.
Soluzione
Non c'è il supporto incorporato di compensazione / ricostruzione del sitemap on-the-fly.
Ma è possibile implementarti con te stesso abbastanza facilmente implementando un sitemapprovider personalizzato derivante da MvcSiteMapProvider.DefaultSiteMapProvider
e creare un metodo utilizzato per cancellare la cache, utilizzando il metodo Clear()
protetto.Esempio:
public class CustomSiteMapProvider : DefaultSiteMapProvider
{
public void ClearSiteMap()
{
Clear();
}
}
.
Non l'ho provato, ma dovrebbe funzionare.Ricordarsi di cambiare il file web.config per utilizzare il sitemapprovider personalizzato anziché DefaultSiteMapProvider
.