如何使用Add()方法将实例添加到viewstate?

时间:2016-10-18 09:32:03

标签: c# asp.net

我声明属性tha的视图状态列表为TMP_RequestCourse,如下所示:

public List<TMP_RequestCourse> T_RequestCourse
{
   get
   {
      if (ViewState["TMP_RequestCourse"] == null)
         return new List< TMP_RequestCourse>();
      else
         return (List<TMP_RequestCourse>)ViewState["TMP_RequestCourse"];
    }
    set { ViewState["TMP_RequestCourse"] = value; }
}

但是我无法使用此代码添加实例:

   TMP_RequestCourse tmp = new TMP_RequestCourse();
   tmp.CourseCode = coursesSelector.SelectedValue.GetInteger().Value;
   tmp.CourseTitle = coursesSelector.SelectedText;
   T_RequestCourse.Add(tmp);

实际上,Add()方法不起作用。

1 个答案:

答案 0 :(得分:2)

在这一行:

if (ViewState["TMP_RequestCourse"] == null)
     return new List< TMP_RequestCourse>();

返回ViewState中不存在的List<TMP_RequestCourse>的新实例(无引用)。将其更改为:

if (ViewState["TMP_RequestCourse"] == null)
{
     var list = new List< TMP_RequestCourse>();
     ViewState["TMP_RequestCourse"] = list;
     return list;
}