0

请参阅主题http://www.codeproject.com/KB/viewstate/SaveViewState.aspx。该主题演示了如何通过服务器将 ViewState 保存到文件系统,以使 ViewState 在往返时非常小。作者通过继承System.Web.UI.Page创建了一个类BasePage,所有页面都派生自这个类。

我正在开发的站点使用母版页,所有页面都来自该母版页。当我尝试覆盖SavePageStateToPersistenceMedium()时,会生成一个编译错误,表明在 System.Web.UI.MasterPage 中没有这样的方法可以覆盖。

我该如何解决这个问题?

4

2 回答 2

2

我找到了解决方案。实际上,aspx 页面是从 System.Web.UI.Page 派生的,而母版页是从 Control 类派生的。那里的方法 SavePageStateToPersistenceMedium() 仅在 aspx 页面中可用,而在母版页中不可用。您必须在每个 aspx 页面中重写此方法,或者创建您自己的从 Page 类派生的基类,然后重写该方法。

于 2009-11-11T08:36:27.063 回答
1

使用PageStatePersister覆盖将是一种更简单的方法来更改所有页面上的 ViewState 持久性机制,而无需基类。

Milan Negovan 写了一篇关于使用 PageStatePersister 的不同选项的优秀博客文章,并附有一些附加链接。

于 2009-11-11T09:15:41.167 回答