牢记ViewState仅能存储已序列化类

今天遇到个奇怪问题。代码如下:

protected void RelationSource(IList<fgf_fgfgl_lxxx> xp) {
           ViewState["lxrxx"] =xp;
    }

或者:

protected IList<fgf_fgfgl_lxxx> RelationSource{
         set{  ViewState["lxrxx"] = value;}
    }

运行时发生错误,详细显示为:程序集“App_Code.oqyv7eae, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”中的类型“fgf_fgfgl_lxxx”未标记为可序列化。

奇怪,怎么回事?网上曰:ViewState只能在当前页面使用,并且保存的只能是已经序列化的类,例如.NET中的strings, integers, Booleans, arrays, ArrayList, hashtable,DataTable等。如果没有序列化,则会抛出异常。可序列化类或者用Session存储。

posted @ 2008-10-23 14:51  Shapley  阅读(551)  评论(0编辑  收藏  举报