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.
|