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.



Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2010.06.03. 9:36:31 | Permalink | Hozzászólások: 0 | Tárgyszavak:


  • Active Directory jelszó cserélése C# kódból

    Dávid Zoltán Sokadjára futok bele olyan feladatba, hogy Active Directory felhasználókat kell kezelnem .NET kódból. A korábbi esetekből általában csak annyira emlékszem, hogy mindent sikerült megcsinálni, de sokat szöszöltem vele. Ennek vége: mostantól minden Active Directory feladatot és a hozzá tartozó megoldást lebloggolok, hogy a jövőben vissza tudjam őket keresni. A mai megoldandó feladat. Tovább »
  • A lényeg kiemelése

    Balássy György (MS RD, ASP.NET MVP, MCTS) A Word 2003-ban volt egy Autosummarize funkció, amely nevéhez hűen kiemelte a lényeget egy dokumentumból. A Word 2007-ben is elérhető ez a szolgáltatás, azonban alapértelmezés szerint nincs kint a szalagon, nekünk kell kitenni. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások