我需要在會話中堅持一些數據。 我寫了很多的屬性,如認爲:更好的方式來管理會話數據
public List<string> FillOrder
{
get { return Session[SessionKeys.QueryFillOrder] as List<string> ?? new List<string>(); }
set { Session[SessionKeys.QueryFillOrder] = value; }
}
當我要消耗這個數據我必須寫這樣的代碼:
List<string> fillOrder = FillOrder;
fillOrder.Add(accordion.ID);
FillOrder = fillOrder;
在我看來,這麼難看,因爲我寧願做即:
FillOrder.Add(accordion.ID);
但這樣我的價值將不會被保存回會話。
你能想出更好的方法來達到同樣的效果嗎?
非常感謝!
謝謝你的回答!而且,使用這種方法,MySession.Current.FillOrder.Add(accordionID)會自動保存在Session中?我無法理解背後的魔力! :D – Alessandro 2011-12-21 09:19:27
是的!當您第一次訪問MySession.Current時,將創建一個MySession的新實例並存儲在ASP.NET會話中。從那以後,你將一直與那個實例一起工作。設置一個斷點爲Current屬性的getter,以查看它是如何工作的。 – M4N 2011-12-21 09:21:29
是的,很明顯,我總是與那個實例一起工作。我無法理解的是它將變化持續到Session。 – Alessandro 2011-12-21 09:23:04