我嘗試在靜態類上構建一個靜態屬性,該靜態類基本上會返回一個cookie值,以用於我的MVC網站(如果它很重要)。這樣的事情:有關HttpContext,HttpContextBase和Action過濾器的問題
public static class SharedData
{
public static string SomeValue
{
get
{
if (HttpContext.Current.Request.Cookies["SomeValue"] == null)
{
CreateNewSomeValue();
}
return HttpContext.Current.Request.Cookies["SomeValue"].Value.ToString();
}
}
}
我需要從控制器操作,global.asax方法和操作過濾器訪問此。但問題是,當運行過濾器運行時,HttpContext不可用。現在,我必須有一個單獨的靜態方法來從我傳入的過濾器上下文中取出cookie,這看起來很尷尬。
什麼是建立這樣一個靜態方法來檢索這樣一個cookie值的最佳解決方案,從控制器動作和動作過濾器這兩個工作?還是有更好的方法來做這樣的事情?
在此先感謝。
運行過濾器時,HttpContext.Current應該可用。你遇到了什麼錯誤? – 2011-03-20 04:11:01
哇,你是對的。我不知道爲什麼我認爲它不是。也許它不是用於不同的動作過濾器,或者是「執行」而不是「執行」?我不知道,但是我可以發誓,當我正在處理這件事的時候,它是空的。謝謝! – 2011-03-20 04:15:56