Code and more

ICommentable Blog

ASP.NET MVC – RedirectToAction Firefox Ajax Problem

Hinterlasse einen Kommentar »

Manchmal ist es zum aus der Haut fahren. In meiner App wird eine Liste per Ajax geladen (Index Action). Jeder Eintrag der Liste stellt direkt eine Löschfunktion zur Verfügung. Zum Löschen wird die Delete Action per Ajax Post aufgerufen. Diese leitet nach getaner Arbeit mittels RedirectToAction an die Index Methode weiter. So weit, so gut.

Nun wird aber in der Index Action mit Request.IsAjaxRequest entschieden ob die ganze Seite oder nur die Liste  als PartialView gerendert werden soll. Die Request.IsAjaxRequest Abfrage müsste in meinem Fall “true” zurückgeben. Tut sie auch, allerdings nur im Internet Explorer. Im Firefox klappt es ums Verrecken nicht. Irgendwie gehen benötigte Header Informationen verloren oder werden nicht richtig gesetzt. 

Eine Möglichkeit zur Lösung oder besser Umgehung des Problems bietet sich mit TempData an. In der Delete Action wird eine Variable [IsActionRedirect] in TempData gesetzt und in der IndexAction abgefragt. (if (Request.IsAjaxRequest() || TempData["ActionRedirect"] != null)) Je nach Ergebnis wird dann der entsprechende View gerendert. Nicht schön aber es funktioniert.

Geschrieben von Herr W.

Mai 14, 2009 um 2:53

Veröffentlicht in Code

Verschlagwortet mit ,

Eine Antwort schreiben