0

ASP.net ページで、セッション変数をプライベート プロパティに割り当てています。Page_Load

private int userid{ get; set;} 

if (!IsPostBack)
{
   if (Session["userid"] != null)
   {
       userid= int.Parse(Session["userid"].ToString());
   }
}

そして、私が使用している追加ボタンのクリックイベントでuserid

protected void btnAdd_Click(object sender, EventArgs e)
{
  doSomething(userid);
}

最初は値が取得されてuseridプロパティに保存されますが、btnAdd_Clickではuserid0 になります。コードをブロックの外に移動したことで問題は解決しましたが、ページの読み込み時にプロパティが設定されていると、プロパティをif(!IsPostBack)何に設定したのか疑問に思いました。ボタンをクリックすると、ページの新しいインスタンスが返されるかどうかが明確ではありませんか? ガイダンスはありますか?useridzero

4

1 に答える 1

1

データはセッション内にあるため、ページの読み込みから要素を削除し、プロパティを次のように変更するだけです。

private int userid{ get{ return int.Parse(Session["userid"].ToString()); } } 
于 2013-01-13T10:50:11.777 に答える