35 messaggi dal 31 marzo 2010
Ciao a tutti, nella mia applicazione ho modificato il routing di default di MVC 4 per ottenere dei friendly url all'interno del sito utilizzaando anche il custom model binder.
Quindi a fronte di un url:
www.miosito.com/storage/illuminazione/lampada1


Riesco ad estrapolare l'id della categoria e l'id dell'elemento per poter visualizzarne il dettaglio.
Ora vorrei utilizzare il sitemap provider per generare il breadcrumb per l'applicazione ma da come ho letto nella documentazione nella sua configurazione normale non rispecchia la mia casistica.

Io per generare le rotte corrette uso l'helper
@Url.RouteUrl("NavigationByCategory", new {category=@item.Name, pag=1 })"


Come posso integrare link del genere con il sitemap provider?
Modificato da sonnicolo il 12 febbraio 2014 18.19 -
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

sonnicolo ha scritto:

nella documentazione nella sua configurazione normale non rispecchia la mia casistica.

Come mai? Forse è perché preferisci non inserire nel file Mvc.sitemap tutte le categorie e i prodotti? Potresti farlo automaticamente, rigenerando il file se l'elenco di categorie o prodotti dovesse cambiare.

In alternativa puoi scriverti una ChildAction da invocare nel tuo Layout (perché la breadcrumb è uno di quegli elementi che appaiono in ogni pagina o quasi). L'action dovrà esaminare l'url e produrre una breadcrumb di conseguenza. Magari usa l'attributo [OutputCache] per mettere il suo risultato in cache ed evitare che vada in esecuzione ad ogni singola richiesta. Esempio:
[ChildActionOnly]
[OutputCache(Duration=10, VaryByParam="requestUri")]
public ActionResult Breadcrumb(Uri requestUri)
{
    //qui logica
}

e poi la invochi dalla pagina di Layout
@Html.Action("Breadcrumb", "NomeController", new { requestUri = Request.Url })


Qui un articolo sul donut hole caching
http://www.tugberkugurlu.com/archive/donut-hole-caching-in-asp-net-mvc-by-using-child-actions-and-outputcacheattribute

ciao,
Moreno
Modificato da BrightSoul il 17 febbraio 2014 21.14 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.