我有以下类,我希望在ViewState中存储一个列表。
[Serializable]
public class Project
{
public string projectID { get; set; }
public string workerID { get; set; }
public string nameProject{ get; set; }
public Project(string pid, string wid, string npro)
{
projectID = pid;
workerID = wid;
nameProject= npro;
}
}
在我的aspx
中,我有以下方法,用我从DataTable
获得的项目填充列表。我最终将列表存储在ViewState
中供以后使用。
private void fillList(DataTable dt)
{
List<Project> projects = new List<Project>();
for (int i = 0; i < dt.Rows.Count; i++)
{
string pid = dt.Rows[i][0].ToString();
string wid = dt.Rows[i][1].ToString();
string npro = dt.Rows[i][2].ToString();
projects.Add(new Project(pid, wid, npro));
}
ViewState["Projects"] = new List<Project>();
ViewState["Projects"] = projects;
}
现在我想检索存储在list
中的ViewState
,以执行其他操作。这就是我的尝试。
protected void btnRetreive_Click(object sender, EventArgs e)
{
List<Project> data = (List<Project>)ViewState["Projects"];
Response.Write(data.Count);
}
但是当我运行它时,我收到以下错误
发生了'System.NullReferenceException'类型的异常 App_Web_vwe5qgkl.dll但未在用户代码中处理
附加信息:对象引用未设置为的实例 对象
我做错了什么?