【问题标题】:Using SavePageStateToPersistenceMedium() for Master Page ASP.NET对母版页 ASP.NET 使用 SavePageStateToPersistenceMedium()
【发布时间】:2009-10-30 06:12:19
【问题描述】:
请参考主题http://www.codeproject.com/KB/viewstate/SaveViewState.aspx。该主题演示了如何通过服务器将 ViewState 保存到文件系统,以使 ViewState 在往返时非常小。作者通过继承System.Web.UI.Page创建了一个类BasePage,所有页面都派生自这个类。
我正在开发的网站使用母版页,所有页面都源自该母版页。当我尝试覆盖 SavePageStateToPersistenceMedium() 时,会生成一个编译错误,表明 System.Web.UI.MasterPage 中没有这样的方法可以覆盖。
我该如何解决这个问题?
【问题讨论】:
标签:
asp.net
viewstate
page-lifecycle
【解决方案1】:
我找到了解决方案。实际上,aspx 页面是从 System.Web.UI.Page 派生的,而母版页是从 Control 类派生的。那里的方法 SavePageStateToPersistenceMedium() 仅在 aspx 页面中可用,而在母版页中不可用。您必须在每个 aspx 页面中重写此方法,或者创建自己的从 Page 类派生的基类,然后重写该方法。
【解决方案2】:
使用PageStatePersister 覆盖将是一种更简单的方法来更改所有页面上的 ViewState 持久性机制,而无需基类。
Milan Negovan 写了一篇很好的 blog post 介绍了使用 PageStatePersister 的不同选项,并提供了一些附加链接。