C# ViewState变量不存在
我试图跟踪一些值,这些值随着数据库中的新记录而递增。但是,当页面重新加载时,这些值不会粘住 这是我正在尝试使用的属性(只是我检索到的所有记录的计数): 我试着这样展示它:C# ViewState变量不存在,c#,asp.net,viewstate,C#,Asp.net,Viewstate,我试图跟踪一些值,这些值随着数据库中的新记录而递增。但是,当页面重新加载时,这些值不会粘住 这是我正在尝试使用的属性(只是我检索到的所有记录的计数): 我试着这样展示它: protected void Page_Load(object sender, EventArgs e) { string output = "Last Time: " + last + ", this time: " + DbData.Count; last = DbData.Count; Respo
protected void Page_Load(object sender, EventArgs e)
{
string output = "Last Time: " + last + ", this time: " + DbData.Count;
last = DbData.Count;
Response.Write(output);
}
不幸的是,每次的输出类似于:上次:0,这次:232253
我已在IIS上运行此网站,并已检查以确保视图状态已启用:
我不知道还有什么好尝试的,有人能提出解决方案吗?我不熟悉
FusionCharts
。但是,ViewState仅适用于当前页面的生命周期
您可能希望尝试SessionState,它在页面之间持久化数据
public int last
{
get
{
if (Session["last"] != null)
return (int)Session["last"];
return 0;
}
set { Session["last"] = value; }
}
我想在我第一次使用
last
后,您需要在(字符串输出)之前更改(字符串输出)和(last=DbData.Count;)行顺序(last=DbData.Count;),然后在下一行更新它。即使这些行是向后的,我仍然会在我的输出中看到除0
之外的其他内容。您如何重新加载页面?我正在使用FusionCharts
构建图表,并且有一个refreshInterval
每隔x
秒调用此代码。每次发生这种情况时,我都会提供一个递增的值,这很有效。Session
和ViewState
变量之间的唯一区别是它们的生命周期吗?在初始页面加载时,ViewState始终为null。另一方面,SessionState维护以前保存的数据。我猜在您的案例中,FusionCharts请求信息作为新页面(而不是回发),因为结果ViewState为0。你可以读更多
public int last
{
get
{
if (Session["last"] != null)
return (int)Session["last"];
return 0;
}
set { Session["last"] = value; }
}