Mohu generovat ASP.NET MVC trasy z mapy webu?

hlasů
3

Přemýšlím o učení ASP.NET MVCrámec pro plánovaný projekt. Mohu použít pokročilé směrování k vytvoření dlouhé URL na základě hierarchie mapa webu?

Příklad navigace cesta:

Home> Obchod> Produkty> Domácnost> Kuchyně> Nádobí> Cooksets> teflonové

Typické (myslím) MVC URL:
http://example.com/products/category/NonstickCooksets

Požadovaný URL:
http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

Mohu to udělat?

Položena 18/08/2008 v 18:05
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
10

Zack, když jsem pochopit pravdu chcete neomezenou hloubku podkategorií. Ne potentát, protože MVC Preview 3 (myslím, 3 nebo 4), ale toto bylo řešeno.

Stačí definovat trasu jako

"{Regulátor} / {akce} / {* categoryPath}"

Pro URL, například:

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

měli byste mít ShopController s akcí produkty:

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();
    }
Odpovězeno 31/08/2008 v 13:38
zdroj uživatelem

hlasů
2

MVC směrování umožňuje definovat skoro žádné strukturu chcete, stačí definovat, co každý z dílů znamenají sémanticky. Můžete mít bity, které jsou „hard-kódované“, stejně jako „obchod / produkty“, a pak definovat zbytek jako proměnná „{category} / {podkategorii} / {} specialita“, atd.

Můžete také definovat několik tras, které všechny jsou mapovány na stejný koncový bod, pokud se vám líbí. V podstatě, když URL přijde do vaší MVC aplikaci, prochází směrovací tabulky dokud nenajde vzor, ​​který odpovídá, vyplní proměnné a předá požadavek off do příslušné řídicí jednotky ke zpracování.

Zatímco výchozí trasa je jednoduchý regulátor, typ akce, Id z nastavení, to rozhodně není rozsah toho, co můžete udělat.

Odpovězeno 18/08/2008 v 18:50
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more