Friendly URLs a QueryString   zodpovězená otázka

VB.NET, ASP.NET WebForms, .NET

V projektu (ASP.NET Web Forms) chci použít knihovnu Friendly Urls, kterou jsem přidal přes NuGet. V souboru global.asax mám zaregistrovaný route:

 Public Shared Sub RegisterRoutes(routes As RouteCollection)
        routes.MapPageRoute("Route", "default/{id}", "~/default.aspx?id={id}")
    End Sub

Tímto kódem můžu na stránku odázat ve formátu ~/default/123, ale url ve tvaru default?id=123 se na "správný" tvar nezmění.

Dále chci v nové url použít i jméno přiřazené k určitému id (default/123-jmeno-prijmeni). Ale nevím, když mám v databázi sloupec Name, jak je přiradit k id, oddělit slova pomlčkami a odstranit diakritiku.

Díky za jakoukoliv radu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

S modulem Friendly Urls zkušenosti nemám, ale osobně si myslím, že je dnes již překonaný. Jak jsem kdysi pochopil, tak (základní) funkčnost tohoto modulu měla být, že pokud máme ASP.NET WebForms aplikaci, která nepoužívá routing module a její fyzická struktura umístění .aspx souborů rovnou odpovídá jednotlivým cílovým routám stránek, tak místo "/Default.aspx" můžeme jako url použít pouze "/Default" (tj. SEO url bez .aspx).

S použitím standardního routing modulu je ale mnohem efektivnější a preferovanější se nevázat na fyzické umístění .aspx souborů, ale

1) Jednotlivé .aspx stránky umísťovat do nějaké podsložky např. Pages a na toto umístění naopak přístup úplně zakázat.

2) Pomoci routing modulu namapovat cílové url na .aspx soubory

3) Parametry pro stránky si vytahovat pomoci kolekce RouteData.

V případě parametru id by to bylo například takto:

routes.MapPageRoute("Route", "default/{id}", "~/Pages/default.aspx")

a ID si ve stránce default.aspx vyzvednete kódem:

int id = Convert.ToInt32(context.Request.RequestContext.RouteData.Values["id"]);

V případě toho "123-jmeno-prijmeni" je určitě možné zavést to celé jako jeden url parametr např. {name} a pak si id vypársovat z hodnoty tohoto parametru až v té stránce. Asi by to mělo jít na úrovni routingu zavést i nějak chytřeji, ale to teď rychle neumím najít.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback