190 messaggi dal 29 settembre 2010
Buonasera a tutti,
sto utilizzando SiteMapPath e Web.sitemap per gestire il breadcrumb nelle mie pagine .aspx...
Nessun problema.. Fino a quando ho dovuto gestire un pagina che è figlia di tutti i nodi dell'albero dell'applicazione...
Mi spiego..
Questa pagina, dettaglioLibro.aspx, viene popolata ogni volta che l'utente clicca sul titolo del libro andando a recuperare i dati da DB attraverso l'isbn del libro (codice libro).
E' quindi una pagina raggiungibile da diversi percorsi..!
Quando nel file .sitemap lo inserisco più volte (in diversi percorsi), giustamente mi segnala questo errore:

"
Rilevati più nodi con lo stesso URL '/Tesi/dettaglio_Libro.aspx'. XmlSiteMapProvider richiede URL univoci per i nodi sitemap.
"

Come posso risolvere se c'è una soluzione?
Grazie a tutti!

Esempio di codice:
"
<siteMapNode url="~\Novità\Medicina.aspx" title="Medicina" description="Medicina">
<siteMapNode url="dettaglio_Libro.aspx" title="dettaglio libro" description="dettaglio libro" />
</siteMapNode>
<siteMapNode url="~\Novità\TecnologiaIngegneria.aspx" title="Tecnologia e ingegneria" description="Tecnologia e ingegneria">
<siteMapNode url="dettaglio_Libro.aspx" title="dettaglio libro" description="dettaglio libro" />
</siteMapNode>
"
20 messaggi dal 02 settembre 2010
www.si2001.it
Ciao,
non è elegante ma io avevo risolto mettendo un query string diverso su ogni url.. magari creando un custom provider è un lavoro fatto meglio ma sicuramente più macchinoso..

Ciao
Simone

Simone Andrioletti

Senior developer at SI2001 Italy
190 messaggi dal 29 settembre 2010
Non ho ben chiaro cosa intendi per
"mettere un query string diverso su ogni url"

Potresti spiegarti meglio?
Grazie
20 messaggi dal 02 settembre 2010
www.si2001.it
Ciao,
la sitemap ha bisogno che si univoco l'url assegnato ad un nodo. Quindi se hai bisogno di due link che puntano a miapagina.aspx potresti inserire miapagina.aspx?1 e miapagina.aspx?2. in questo modo l'url rimane univoco e non ti restituisce errore.

Se non ti è chiaro posto il tuo codice modificato:

<siteMapNode url="~\Novità\Medicina.aspx" title="Medicina" description="Medicina">
<siteMapNode url="dettaglio_Libro.aspx?1" title="dettaglio libro" description="dettaglio libro" />
</siteMapNode>
<siteMapNode url="~\Novità\TecnologiaIngegneria.aspx" title="Tecnologia e ingegneria" description="Tecnologia e ingegneria">
<siteMapNode url="dettaglio_Libro.aspx?2" title="dettaglio libro" description="dettaglio libro" />
</siteMapNode>


Ciao
Simone
Modificato da simone.andrioletti il 05 dicembre 2010 09.46 -

Simone Andrioletti

Senior developer at SI2001 Italy
190 messaggi dal 29 settembre 2010
Mmm...
E' davvero interessante questa soluzione che mi proponi.. e mi è chiara...
Non appena posso la provo..
Non posso provarla subito perchè mi sto occupando di un'altra parte del sito e non voglio distogliere l'attenzione da quello che sto facendo..
In teoria si dovrebbe funzionare...

Non appena provo ti faccio sapere.
In ogni caso.. Grazie mille!!!
710 messaggi dal 13 novembre 2008
Contributi
si, ma se hai duecento dettaglio_Libro te li devi inserire a mano

meglio una soluzione custom che estende il SiteMapProvider


http://weblogs.asp.net/jgaylord/archive/2008/06/04/adding-querystring-parameters-to-the-sitemapnode.aspx
190 messaggi dal 29 settembre 2010
Non appena posso mi vedo anche questa..
Si in effetti non è sicuramente la soluzione migliore.. :-)
Grazie mille per il suggerimento!

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.