protected void Button1_Click(object sender, EventArgs e) { Test test = ViewState["VIEW_TEST"] as Test; if (test == null) { test = new Test(); } test[-1] = TextBox1.Text; ViewState["VIEW_TEST"] = test; } 下面再看一下自定義類Test的實現:
[SerializableAttribute] class Test { private IList list; public Test() { list = new ArrayList(); } public object this[int index] { get { if (index >= list.Count) { return null; } return list[index]; } set { list.Add(value); } } }特別注意第一行的SerializableAttribute屬性,指定這個屬性後就代表此類是可以序列化的(具體序列化的過程都是由.Net內部進行的),那麼我們就可以把此類放入VIEwState中了,如果沒有指定SerializableAttribute屬性的話,放入VIEwState時就會報錯。