2009-08-19 73 views
1

我有一個ActionResult,它將TempData設置爲對象。使用JSON請求的ASP.Net MVC Tempdata

呈現的頁面包含一個按鈕,該按鈕啓動對同一控制器的JSON請求。 (對於jqGrid人羣)。

JSON請求上的TempData爲空 - 爲什麼會發生這種情況?更奇怪的是,如果我有一個按鈕發佈到同一個控制器,我點擊它而不是我的JSON請求按鈕,TempData將在那裏,但如果我點擊JSON按鈕,然後發佈按鈕,TempData將爲空。

幫助讚賞。

謝謝, 克里斯

+0

你有任何代碼示例可以告訴我們嗎? – 2009-08-19 15:49:15

+0

我同意詹姆斯的觀點,我們需要在這裏看到代碼。 – Lazarus 2009-08-19 15:56:11

回答

5

時不要不重定向到經由TempData的一個動作到另一個傳遞數據。 TempData is only for redirects。在您按下按鈕之前,頁面的某些其他元素很可能會提出請求,導致您在TempData中鬆動的項目消失。這就是爲什麼TempData僅用於重定向的原因;只有在重定向的時候,你纔會有對下一個請求的所有有信心。

取而代之,將數據放入渲染頁面。當您需要請求需要此數據的操作時,請將其明確傳遞爲查詢字符串參數。

HTTP是無狀態的。學會與之共處。不要試圖將狀態引入服務器;如果你這麼做,你會後悔的。