C# 何时以及如何初始化ViewState?

C# 何时以及如何初始化ViewState?,c#,asp.net,viewstate,C#,Asp.net,Viewstate,我正在尝试使用ViewState存储集合,但它始终会导致错误: 对象引用未设置为对象的实例。 我不知道什么时候初始化,在哪里初始化?有时我使用: if(ViewState["X"]==null) ViewState["X"] = new List<Checkitem>(); if(ViewState[“X”]=null)ViewState[“X”]=newlist(); 我把它放在Page_Init()事件中,但每次它都会将它初始化为一个新实例 当我试着这样写的时候: if (

我正在尝试使用ViewState存储集合,但它始终会导致错误: 对象引用未设置为对象的实例。 我不知道什么时候初始化,在哪里初始化?有时我使用:

if(ViewState["X"]==null) ViewState["X"] = new List<Checkitem>();
if(ViewState[“X”]=null)ViewState[“X”]=newlist();
我把它放在Page_Init()事件中,但每次它都会将它初始化为一个新实例

当我试着这样写的时候:

 if (!IsPostBack)
            ViewState["keywords"] = new List<Checkitem>();
if(!IsPostBack)
ViewState[“关键字”]=新列表();

它不会在以后初始化并显示上面提到的错误

看看这篇文章和我的答案,我建议你仔细阅读ASP.NET页面生命周期(参考文章中包含的图像应该提供一些线索,说明ViewState在哪里可用:

ViewState.Add("key", "value"); //adding value in viewstate 
    String abc = ViewState["key"].ToString(); //getting value from viewstate

请参阅本文和我的答案,我建议您阅读ASP.NET页面生命周期(参考文章中包含的图像应提供一些关于ViewState可用位置的线索: