Egyperces: ResolveUrl Page nélkül

Nem ritkán előforduló feladat, hogy egy relatív URL-ből abszolút URL-t kell előállítanunk, vagy egyszerűen csak fel kell oldanunk a tildét. Erre kiváló a ResolveUrl metódus, ami a Control osztály és így a Page része. De mi van akkor, ha még egy egészen kicsit Page példányunk sincsen, mert például egy HttpModule-ban vagyunk?

Érdemes megismerkedni a VirtualPathUtility osztállyal, van egy rakás hasznos metódusa:

  • URL részek lekérdezése: GetDirectory, GetFileName, GetExtension.
  • Záró per-jel kezelése: AppendTrailingSlash, RemoveTrailingSlash.
  • URL típusának lekérdezése: IsAbsolute, IsAppRelative.
  • URL átalakítás: MakeRelative, ToAbsolute, ToAppRelative.

Így már nem is olyan nehéz megoldani a fenti feladatot:

  Uri absoluteUri = new Uri( HttpContext.Current.Request.Url, 
VirtualPathUtility.ToAbsolute( relativeUrl ) );

Azt azonban érdemes tudni, hogy a VirtualPathUtility nem tud query string paramétereket kezelni. Ha arra is szükség van, akkor érdemes körülnézni Michael Palermo és Rick Strahl blogbejegyzései és a hozzá kapcsolódó kommentek között.

Technorati-címkék:

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s