19 messaggi dal 27 luglio 2009
Ciao,
qualcuno mi sa consiglaire un tutorial oppure se ha il codice di esempio per gestire il mio menu nella pagina _Layout.chstml da database.

Inoltre vorrei sapere come fare per gestire il routing in maniera intelligente per un miglio SEO...

Un routing del genere :
localhost/titolo/sottotitolo/ID

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
potresti usare l'MvcSiteMapProvider, un'implementazione del SiteMapProvider di ASP.NET che ti consentirà di generare un menu gerarchico.
In particolare leggi questa pagina della wiki, che ti mostra come recuperare l'elenco dei nodi dal database.
https://github.com/maartenba/MvcSiteMapProvider/wiki/Defining-sitemap-nodes-using-IDynamicNodeProvider

graficaweb ha scritto:

Inoltre vorrei sapere come fare per gestire il routing in maniera intelligente per un miglio SEO...

Le routes da scrivere dipendono da come sono organizzati gerarchicamente i tuoi contenuti. Se vuoi essere abbastanza preciso, non aver paura di arrivare a scrivere una o più routes per controller, se richiesto.

Ad esempio, per il controller dei prodotti potresti creare queste due:
routes.MapRoute(
    name: "SchedaProdotto",
    url: "prodotti/{categoria}/{prodotto}",
    defaults: new { controller = "Prodotti", action = "Scheda" }
    );

routes.MapRoute(
    name: "ElencoProdotti",
    url: "prodotti/{categoria}",
    defaults: new { controller = "Prodotti", action = "Elenco", categoria = UrlParameter.Optional }
    );

...che corrisponderanno a queste due actions nel ProdottiController.
public ActionResult Scheda(string categoria, string prodotto) {
    //qui estrai dal database il prodotto indicato e restituisci la view della scheda prodotto
}
public ActionResult Elenco(string categoria)
{
    //qui restituisci la view di elenco dei prodotti nella categoria data
    //se la categoria è null, restituisci la view di tutti i prodotti
}

Come vedi, per migliorare la leggibilità dell'url, ho usato delle stringhe anziché dei numeri per identificare categoria e prodotto. Questo significa che nel tuo database dovrà esserci una colonna varchar che identifica univocamente una categoria o prodotto. Nel gergo tecnico, questa stringa identificativa si chiama slug e spesso viene calcolata a partire dal titolo.
Ecco ad esempio un algoritmo che rimuove spazi vuoti e caratteri non validi, affinché si possa poi usare nell'URL.
https://gist.github.com/onebeatconsumer/1329568
Eseguilo quando l'amministratore del sito salva una nuova categoria o prodotto. Assicurati che ci sia un vincolo di univocità sulla colonna in cui inserisci lo slug, altrimenti rischi di trovarti con due prodotti che hanno lo stesso valore.

ciao,
Moreno
Modificato da BrightSoul il 08 marzo 2014 13.51 -

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.