Amikor nem lehet redirectelni

Nagyon hasznos és kényelmes az AJAX használata, azt azonban egy pillanatra sem szabad elfelejteni, hogy aszinkron postback (pl. page method) esetén nincs akkora szabadságunk, mint egy sima szinkron kérés esetén. Bár bizonyos esetekben a teljes oldal életciklus lefut, még egy sima Response.Redirect sem működik.

Ha mégis megpróbáljuk, az alábbi hibaüzenetet kapjuk, sajnos csak futási időben:

Response.Redirect cannot be called in a Page callback.

A megoldás az, hogy ebben az esetben szerver oldalon lemondunk az átirányításról:

  if( !this.Page.IsCallback )
  {
    this.Response.Redirect( "MasikOldal.aspx" );
  }

Helyette kénytelenek vagyunk a böngészőnek JavaScriptet visszaküldeni, ami a window.location tulajdonság írásával kliens oldalról végzi az átirányítást.

Tudtok jobb megoldást?



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.

2009.08.25. 15:27:41 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • IIS7 UrlRewrite és ASP.NET postback

    Balássy György (MS RD, ASP.NET MVP, MCTS) Az IIS 7-hez kiadott UrlRewrite modul számos előnnyel rendelkezik: az alkalmazástól független, XML-ben konfigurálható, regex alapú, van hozzá GUI, nem csak rewrite-ot, hanem redirectet is tud és még sorolhatnám. Mivel a webkiszolgálóba épül be, tetszőleges platformon íródott alkalmazással használható, így kiválóan működik ASP.NET-tel is. Mindössze csak a postback-kel van gond. Tovább »
  • VaryByParam gond

    Dávid Zoltán Ez ismét csak egy rövid megjegyzés, azért, hogy legközelebb ne szívjak vele. Ha oldal OutputCache esetén külön szeretnénk gyorsítótárazni POST/QueryString paraméterek alapján, akkor ezt a VaryByParam attribútumban jelezhetjük. Az MSDN alapján ezeket a paramétereket vesszővel kell elválasztani. Nekem nem működött így. Viszont pontosvesszővel igen. 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