Domanda

Sto pensando di imparare il ASP.NET MVC quadro per un progetto imminente.Posso utilizzare il routing avanzato per creare URL lunghi basati sulla gerarchia della mappa del sito?

Esempio di percorso di navigazione:

Home > Negozio > Prodotti > Casalinghi > Cucina > Pentole > Set da cucina > Antiaderente

URL MVC tipico (credo):
http://example.com/products/category/NonstickCooksets

URL desiderato:
http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

Posso farlo?

È stato utile?

Soluzione

Zack, se ho capito bene, vuoi una profondità illimitata delle sottocategorie.Nessun problema, da quando MVC Preview 3 (penso 3 o 4) questo è stato risolto.

Basta definire un percorso come

"{controller}/{azione}/{*categoryPath}"

per un URL come:

http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

dovresti avere un ShopController con un'azione Products:

public class ShopController : Controller
{
...
    public ActionResult Products(string categoryPath)
    {
        // the categoryPath value would be
        // "household/kitchen/cookware/cooksets/nonstick". Process it (for ex. split it)
        // and then decide what you do..
        return View();
    }

Altri suggerimenti

Il routing MVC ti consente di definire praticamente qualsiasi struttura tu voglia, devi solo definire cosa significa semanticamente ciascuno dei pezzi.Puoi avere bit "hardcoded", come "negozio/prodotti", e quindi definire il resto come variabile, "{categoria}/{sottocategoria}/{specialità}", ecc.

Se lo desideri, puoi anche definire diversi percorsi mappati tutti allo stesso punto finale.Fondamentalmente, quando un URL entra nella tua app MVC, passa attraverso la tabella di routing finché non trova un modello che corrisponde, compila le variabili e trasmette la richiesta al controller appropriato per l'elaborazione.

Sebbene il percorso predefinito sia un semplice tipo di configurazione Controller, Azione, Id, questo non è certamente l'ambito di ciò che puoi fare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top