首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC:TempData 續 - 禁用 SessionState 之後

     編輯:關於ASP.NET

問題:禁用 Session 導致 TempData 異常

環境:Win 2008, VS 2008 SP1, MVC 1.0。TempData 預設使用 SessionTempDataProvider。在 web.config 設 <sessionState mode="Off" /> 後,每次 Action 執行載入/儲存 TempData 即拋出異常。

異常:SessionState 已停用無法使用 TempData

解決:實作 NullTempDataProvider

不想用 TempData,也不想為禁用 Session 而重寫完整 Provider,乾脆寫一個「什麼都不做」的 Provider:

public class NullTempDataProvider : ITempDataProvider
{
    public IDictionary<string, object> LoadTempData(ControllerContext controllerContext)
    {
        return new Dictionary<string, object>(); // 回傳空字典
    }

    public void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values)
    {
        // 故意留空:不儲存任何資料
    }
}

NullTempDataProvider 程式碼截圖

下一步:替換預設 Provider

需在 Controller 中覆寫 CreateTempDataProvider() 回傳 NullTempDataProvider 實例,即可在禁用 Session 環境下正常運行 MVC 應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved