Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将datalist添加到viewstate中_C#_Asp.net_Exception_Serialization - Fatal编程技术网

C# 将datalist添加到viewstate中

C# 将datalist添加到viewstate中,c#,asp.net,exception,serialization,C#,Asp.net,Exception,Serialization,我在视图状态中添加了一个datalist,如下所示: ViewState["datalist"] = dtlstForm; 并将其检索为: DataList lis = (DataList)ViewState["datalist"]; 然后出现以下错误: 在程序集System.Web中键入'System.Web.UI.WebControl.DataList', 版本=2.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a'为 未标记为可序列化 除非对象实

我在视图状态中添加了一个
datalist
,如下所示:

ViewState["datalist"] = dtlstForm;
并将其检索为:

DataList lis = (DataList)ViewState["datalist"];
然后出现以下错误:

在程序集System.Web中键入'System.Web.UI.WebControl.DataList', 版本=2.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a'为 未标记为可序列化


除非对象实现ISerializable,否则无法将其置于viewstate中。 viewstate在发送到客户端之前已序列化

您可以以与viewstate类似的方式使用会话,无论出于何种目的,会话都是正常的。我想这次会议需要更多的资源


datalist是您自己的类吗?如果是这样的话,您也可以实现ISerializable,但如果我可以只键入session,我就不会这样做。

除非对象实现ISerializable,否则无法将其置于viewstate中。 viewstate在发送到客户端之前已序列化

您可以以与viewstate类似的方式使用会话,无论出于何种目的,会话都是正常的。我想这次会议需要更多的资源

datalist是您自己的类吗?如果是这样的话,您也可以实现ISerializable,但如果我可以只键入session,我就不会这样做。

该类不可序列化(没有在其上设置SerializableAttibute,并且它没有实现接口)

这意味着.NET framework无法序列化它并将其置于ViewState中

因为这是一个内置类,所以不能将其修改为可序列化

由于数据列表预计会包含相当多的信息,将其置于ViewState会导致ViewState非常庞大,这会影响性能,因此不将其序列化是有意义的

也许您可以重新考虑需要放入ViewState中的信息,只在其中放入少量信息(例如ID列表)。

该类不可序列化(未在其上设置SerializableAttibut,且未实现接口)

这意味着.NET framework无法序列化它并将其置于ViewState中

因为这是一个内置类,所以不能将其修改为可序列化

由于数据列表预计会包含相当多的信息,将其置于ViewState会导致ViewState非常庞大,这会影响性能,因此不将其序列化是有意义的


也许您可以重新考虑需要放在ViewState中的信息,只在其中放入少量信息(例如ID列表)。

DataList=System.Web.UI.WebControl.DataList,因此OP自己的类不可用。SessionState只有在设置为InProc(进程中)并保存在应用程序内存中时才起作用。如果您使用状态服务器或Sql server来保存会话状态,则会话中保存的任何对象也需要可序列化。DataList=System.Web.UI.WebControl.DataList,因此不是OP自己的类。SessionState仅在设置为InProc(进程中)并保存在应用程序内存中时才起作用。如果使用状态服务器或Sql server保存会话状态,则会话中保存的任何对象也需要可序列化。要问的问题是“为什么”要将此控件置于ViewState中?这样做的目的是什么?我可以问一下为什么要将数据列表放入ViewState吗?DataList是一个控件,ASP.NET中有一个非常好的控件层次结构。要问的问题是“为什么”要将此控件置于ViewState中?这样做的目的是什么?我可以问一下为什么要将数据列表放入ViewState吗?DataList是一个控件,ASP.NET中有一个非常好的控件层次结构。