如何将ViewState强制转换为List <object>

时间:2017-05-08 04:01:05

标签: c# asp.net datatable nullreferenceexception

我有以下类,我希望在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但未在用户代码中处理

     

附加信息:对象引用未设置为的实例   对象

我做错了什么?

0 个答案:

没有答案