自已定义的类和struct要想放在ViewState里面必须要实现IStateManager 接口

解决方案 »

  1.   

    可以,不过你定义struct时要加个[Serializable]特性:public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.Button Button2;
    protected System.Web.UI.WebControls.Label Label1; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } private void Button1_Click(object sender, System.EventArgs e)
    {
    struct1 mystruct = new struct1();
    mystruct.name = "kent";
    ViewState["name"] = mystruct;
    } private void Button2_Click(object sender, System.EventArgs e)
    {
    Label1.Text = ((struct1)ViewState["name"]).name;
    }
    }[Serializable]
    public struct struct1
    {
    public string name;
    }
      

  2.   

    chnking(kent) 说的对,要保持视图状态,则必须支持序列化或类型转换,不支持序列化或类型转换的对象是不能保存其视图状态的。