2009-08-19 12 views
1

Ich habe ein ActionResult, das TempData als ein Objekt festlegt.Tempdata in ASP.Net MVC mit JSON-Anforderung

Die gerenderte Seite enthält eine Schaltfläche, die eine JSON-Anforderung an denselben Controller auslöst. (Für jqGrid-Population).

Die TempData auf der JSON-Anfrage ist null - warum passiert das? Wenn ich eine Schaltfläche hatte, die auf den gleichen Controller verweist, und ich klicke sie anstelle meiner JSON-Anforderungsknopf, TempData wird da sein, aber wenn ich auf die JSON-Schaltfläche klicken, dann die Post-Schaltfläche TempData wird null sein.

Hilfe geschätzt.

Danke, Chris

+0

Haben Sie Codebeispiele, die Sie uns zeigen könnten? –

+0

Ich stimme James zu, wir müssen Code hier sehen. – Lazarus

Antwort

5

Versuchen Sie nicht, Daten von einer Aktion zur anderen über TempData passieren, wenn nicht umgeleitet werden. TempData is only for redirects. Es ist sehr wahrscheinlich, dass ein anderes Element Ihrer Seite eine Anfrage macht, bevor Sie die Taste drücken, wodurch die Objekte, die Sie in TempData entfernt haben, verschwinden. Aus diesem Grund ist TempData nur für Weiterleitungen gedacht. nur bei der Weiterleitung können Sie irgendein Vertrauen davon haben, was die nächste Anfrage sein wird.

Legen Sie stattdessen die Daten in die gerenderte Seite. Wenn Sie eine Aktion anfordern müssen, die diese Daten benötigt, übergeben Sie sie explizit als Abfragezeichenfolgenparameter.

HTTP ist zustandslos. Lerne damit zu leben. Versuchen Sie nicht, Ihren Server mit einem Status zu versehen. Du wirst es bereuen, wenn du es tust.