我使用asp.net(C#)中的访问器/变异器来赋值和获取值。
我有两件事:
protected void ddlDepartments_SelectedIndexChanged(object sender, EventArgs e)
{
accessVariables.DepID = Convert.ToInt32(ddlDepartments.SelectedValue);
}
protected void chkIsHead_CheckedChanged(object sender, EventArgs e)
{
Response.Write(accessVariables.DepID);
}它称之为:
public class AccessibleVariables
{
public int depID { get; set; }
public int DepID
{
get { return depID; }
set { depID = value; }
}
}第二个事件返回0,为什么?我运行了调试器,我检查了,(set)分配了真正的值,这很完美,但是get不返回实值,它总是返回0,为什么?
发布于 2014-07-04 06:55:34
由于http是无状态协议,因此在postback中asp.net中不维护属性值。您可以使用ViewState在回发之间保存值。您可以在ViewState上创建一个int属性,它将从getter返回int并接受int设置ViewState。
ViewState["depID"] = "0";
public int AccessibleVariables
{
get { return (int) ViewState["depID"]; }
set { ViewState["depID"] = value; }
}ViewState
简单地说,微软ASP.NET视图状态是ASP.NET网页使用的技术,用于通过回发将更改保存到Web窗体的状态。
无国籍议定书
在计算中,无状态协议是一种通信协议,它将每个请求作为一个独立的事务处理,该事务与任何先前的请求无关,因此通信由独立的请求和响应对组成。无状态协议不要求服务器在多个请求期间保留有关每个通信伙伴的会话信息或状态。
https://stackoverflow.com/questions/24568281
复制相似问题