Vytváření čitelných adres URL na webech ASP.NET Web Pages (Razor)

, autor: Tom FitzMacken

Tento článek popisuje směrování na webu ASP.NET Web Pages (Razor) a jak vám umožní používat adresy URL, které jsou čitelnější a lepší pro SEO.

Naučíte se:

  • Jak ASP.NET používá směrování, abyste mohli používat čitelnější a prohledávatelnější adresy URL.

Verze softwaru použité v tomto kurzu

  • ASP.NET Webové stránky (Razor) 3

Tento kurz funguje také s webovými stránkami ASP.NET 2.

Informace o směrování

Adresy URL stránek na vašem webu můžou mít vliv na to, jak dobře web funguje. Adresa URL, která je "přátelská", může uživatelům usnadnit používání webu. Může také pomoct s optimalizací pro vyhledávací web (SEO) webu. ASP.NET weby zahrnují možnost automaticky používat popisné adresy URL.

ASP.NET umožňuje vytvářet smysluplné adresy URL, které popisují akce uživatele, a ne jenom odkazovat na soubor na serveru. Zvažte tyto adresy URL pro fiktivní blog:

  • http://www.contoso.com/Blog/blog.cshtml?categories=hardware
  • http://www.contoso.com//Blog/blog.cshtml?startdate=2009-11-01&enddate=2009-11-30

Porovnejte tyto adresy URL s následujícími adresami:

  • http://www.contoso.com/Blog/categories/hardware/
  • http://www.contoso.com/Blog/2009/November

V první dvojici by uživatel musel vědět, že se blog zobrazuje pomocí stránky blog.cshtml , a pak by musel vytvořit řetězec dotazu, který získá správnou kategorii nebo rozsah kalendářních dat. Druhá sada příkladů je mnohem jednodušší pochopit a vytvořit.

Adresy URL prvního příkladu také odkazují přímo na konkrétní soubor (blog.cshtml). Pokud byl blog z nějakého důvodu přesunut do jiné složky na serveru nebo pokud by se blog přepsal tak, aby používal jinou stránku, odkazy by byly chybné. Druhá sada adres URL neodkazuje na určitou stránku, takže i když se implementace blogu nebo umístění změní, budou adresy URL stále platné.

Na webových stránkách ASP.NET můžete vytvořit přívětivější adresy URL, jako jsou adresy URL uvedené v předchozích příkladech, protože ASP.NET používá směrování. Směrování vytvoří logické mapování z adresy URL na stránku (nebo stránky), která může požadavek splnit. Vzhledem k tomu, že mapování je logické (nikoli fyzické, na konkrétní soubor), poskytuje směrování velkou flexibilitu při definování adres URL pro váš web.

Jak funguje směrování

Když ASP.NET požadavek zpracuje, přečte adresu URL, aby určil, jak ho směrovat. ASP.NET se pokusí spárovat jednotlivé segmenty adresy URL se soubory na disku zleva doprava. Pokud existuje shoda, všechno, co z adresy URL zbylo, se předá na stránku jako informace o cestě.

Představte si, že někdo vytvoří žádost pomocí této adresy URL:

http://www.contoso.com/a/b/c

Hledání bude vypadat takto:

  1. Existuje soubor s cestou a názvem /a/b/c.cshtml? Pokud ano, spusťte stránku a nepředávejte do ní žádné informace. V opačném případě...
  2. Existuje soubor s cestou a názvem /a/b.cshtml? Pokud ano, spusťte stránku a předejte jí hodnotu c . Jinak...
  3. Existuje soubor s cestou a názvem /a.cshtml? Pokud ano, spusťte stránku a předejte jí hodnotu b/c .

Pokud hledání nenašlo žádné přesné shody pro soubory .cshtml v zadaných složkách, ASP.NET dál hledat tyto soubory:

  1. /a/b/c/default.cshtml (žádné informace o cestě)
  2. /a/b/c/index.cshtml (žádné informace o cestě).

Poznámka

Aby bylo jasno, požadavky na konkrétní stránky (tj. požadavky, které obsahují příponu souboru .cshtml ) fungují tak, jak byste očekávali. Požadavek jako http://www.contoso.com/a/b.cshtml spustí stránku b.cshtml v pořádku.

Na stránce můžete získat informace o cestě prostřednictvím vlastnosti stránky UrlData , což je slovník. Představte si, že máte soubor s názvem ViewCustomers.cshtml a váš web dostane tento požadavek:

http://mysite.com/myWebSite/ViewCustomers/1000

Jak je popsáno v pravidlech výše, žádost přejde na vaši stránku. Na stránce můžete pomocí kódu podobného následujícímu získat a zobrazit informace o cestě (v tomto případě hodnotu "1000"):

<!DOCTYPE html>
<html>
    <head>
        <title>URLData</title>
    </head>
    <body>
      Customer ID: @UrlData[0].ToString()
    </body>
</html>

Poznámka

Protože směrování nezahrnuje úplné názvy souborů, může dojít k nejednoznačnosti, pokud máte stránky, které mají stejný název, ale různé přípony názvů souborů (například MyPage.cshtml a MyPage.html). Abyste se vyhnuli problémům se směrováním, je nejlepší mít jistotu, že na webu nemáte stránky, jejichž názvy se liší jenom v jejich rozšíření.

Další materiály

WebMatrix – adresy URL, UrlData a směrování pro SEO. Tato položka blogu od Mikea Brinda obsahuje některé další podrobnosti o tom, jak funguje směrování na ASP.NET webových stránkách.