Vra

Ek dink van die leer van die ASP.NET MVC raamwerk vir'n opkomende projek.Kan ek gebruik die gevorderde routing te skep lank Url's wat gebaseer is op die sitemap hiërargie?

Voorbeeld navigasie pad:

Home > Winkel > Products > Huishoudelike > Kombuis > Kookware > Cooksets > Kleefwerende

Tipiese (ek dink) MVC URL:
http://example.com/products/category/NonstickCooksets

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

Kan ek dit doen?

Was dit nuttig?

Oplossing

Zack, as ek reg verstaan wat jy wil onbeperkte diepte van die subkategorieë.Geen biggie, aangesien MVC Voorbeeld 3 (ek dink 3 of 4) hierdie is opgelos.

Net definieer'n roete soos

"{kontroleerder}/{aksie}/{*categoryPath}"

vir'n url soos :

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

jy moet'n ShopController met'n Produkte aksie :

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();
    }

Ander wenke

Die MVC routing kan jy definieer pretty much enige struktuur wat jy wil, jy hoef net om te definieer wat elk van die stukke beteken semanties. Jy kan stukkies wat "hard-gekodeerde", soos "winkel / produkte" te hê, en dan definieer die res as veranderlike, "{kategorie} / {subcategory} / {spesiale}", ens.

Jy kan ook 'n paar roetes wat al kaart om dieselfde eindpunt as jy wil definieer. Basies, wanneer 'n URL in jou MVC app kom, dit gaan deur die routing tafel totdat dit 'n patroon wat ooreenstem met bevind, vul in die veranderlikes en verby die versoek af na die toepaslike kontroles vir verwerking.

Hoewel die verstek roete is 'n eenvoudige Controller, Aksie, Id soort opstel, dit is beslis nie die omvang van wat jy kan doen.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top