セッションでいくつかのデータを維持する必要があります。 私はそのような多くの特性を書いた:セッションデータを管理するためのより良い方法
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);
ですが、この方法では私の値はセッションに戻されません。
あなたは同じ結果を達成するためのより良い方法はありますか?
ありがとうございました! ASP.NETのセッションで
public class MySession
{
// private constructor
private MySession()
{
FillOrder = new List<string>();
}
// Gets the current session.
public static MySession Current
{
get
{
var session = (MySession)HttpContext.Current.Session["__MySession__"];
if (session == null)
{
session = new MySession();
HttpContext.Current.Session["__MySession__"] = session;
}
return session;
}
}
// **** add your session properties here, e.g like this:
public List<string> FillOrder {get; set; }
public string Property1 { get; set; }
public DateTime MyDate { get; set; }
public int LoginId { get; set; }
}
このクラスの店舗自体のインスタンスを1つ、あなたのセッションにアクセスすることができます:
ありがとうございました!そして、このアプローチを使用すると、MySession.Current.FillOrder.Add(accordionID)は自動的にSessionに保持されますか?私は後ろの魔法を理解できません! :D – Alessandro
はい!初めてMySession.Currentにアクセスすると、MySessionの新しいインスタンスが作成され、ASP.NETセッションに保存されます。それ以降は、常にそのインスタンスで作業します。ブレークポイントをCurrentプロパティのゲッターに設定して、ブレークポイントの動作を確認します。 – M4N
はい、私は常にそのインスタンスで作業することは明らかです。私が理解できないことは、それがセッションに変更を持続させるところです。 – Alessandro