我在以下语句中收到错误:
liPages = (List<ListItem>)(ViewState["CurrentSetOfPages"]);
我得到的错误是:
Type 'System.Web.UI.WebControls.ListItem' in Assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable.
但是,当我使用以下内容时,所有事情似乎都可以正常工作..
liPages = (List<ListItem>)(Session["CurrentSetOfPages"]);
请对此澄清。
由于将项目存储在ViewState中的结果是将它们存储在页面上的字符串中(以维护多个请求之间的状态),因此它们需要可序列化,另一方面,Session则位于内存存储中(如果您使用的是InProc模式,这是默认设置,否则不适用),因此对象不需要可序列化。
此外,请参阅以下答案以进行澄清:为什么Viewstate只能包含可序列化的对象?
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句