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_Clickuserid变为 0。我将代码移出if(!IsPostBack)块,这解决了问题,但让我想知道一旦我的userid属性已经在页面加载时设置为什么设置。zero不清楚按钮单击是否返回页面的新实例或什么?有什么指导吗?

4

1 回答 1

1

您可以从页面加载中删除这些内容,因为数据在会话中,只需将属性更改为以下内容:

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