扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
ASP.NET 控件的开发人员利用 ViewState 和控件状态来保持浏览器发出的各请求之间的状态信息。通常,该信息作为由页面呈现的 HTML 标记中的隐藏字段传送给客户端。然后,该页面状态作为下一个窗体提交的一部分传回服务器并还原给控件或页面。即使浏览器使用 HTTP 协议(该协议定义为无状态),但利用临时存储状态信息的功能,控件的
ASP.NET 2.0 允许您修改临时保持页面状态的位置和方式。在某些情况下,避免在客户端与服务器之间往返传送数据可能更为可取。ASP.NET 2.0 提供的两个页面状态持续
要使用除默认持续程序之外的持续程序,需要重写该页的 PageStatePersister 属性,并返回另一个持续程序的一个实例。首先,下面的一个简单页面只使用大量
以下是引用片段:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected override PageStatePersister PageStatePersister { get { return new SessionPageStatePersister(this); } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!IsPostBack) { ArrayList list = new ArrayList(); for (int i = 0; i < 1000; i++) { list.Add(Convert.ToString(i)); } GridView1.DataSource = list; GridView1.DataBind(); } } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="Submit" /></div> </form> </body> </html> |
当查看该页面所呈现的 HTML 时,您会看到一个用于传送 ViewState 的较大隐藏字段。
以下是引用片段:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title> Untitled Page </title></head> <body> <form name="form1" method="post" action="default2.aspx" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ0MDQzNjk2Ng9kFgICBA9kFgICAQ88KwANAgAPFgYeC18hRGF0YUJv dW5kZx4JUGFnZUNvdW50AgEeC18hSXRlbUNvdW50AhRkDBQrAAEWBh4EVHlwZRkrAh4ETmF tZQUESXRlbR4JRGF0YUZpZWxkBQEhFgJmD2QWKgIBD2QWAmYPDxYCHgRUZXh0BQEwZGQCAg 9kFgJmDw8WAh8GBQExZGQCAw9kFgJmDw8WAh8GBQEyZGQCBA9kFgJmDw8WAh8GBQEzZGQCB Q9kFgJmDw8WAh8GBQE0ZGQCBg9kFgJmDw8WAh8GBQE1ZGQCBw9kFgJmDw8WAh8GBQE2ZGQC CA9kFgJmDw8WAh8GBQE3ZGQCCQ9kFgJmDw8WAh8GBQE4ZGQCCg9kFgJmDw8WAh8GBQE5ZGQ CCw9kFgJmDw8WAh8GBQIxMGRkAgwPZBYCZg8PFgIfBgUCMTFkZAIND2QWAmYPDxYCHwYFAj EyZGQCDg9kFgJmDw8WAh8GBQIxM2RkAg8PZBYCZg8PFgIfBgUCMTRkZAIQD2QWAmYPDxYCH wYFAjE1ZGQCEQ9kFgJmDw8WAh8GBQIxNmRkAhIPZBYCZg8PFgIfBgUCMTdkZAITD2QWAmYP DxYCHwYFAjE4ZGQCFA9kFgJmDw8WAh8GBQIxOWRkAhUPDxYCHgdWaXNpYmxlaGRkGAEFCUd yaWRWaWV3MQ9nZMhHZ3iQZp62S8IR8fTJ5ZL42ira" /> </div> ... |
当我们向 PageStatePersister 属性添加重写并使用内置 SessionPageStatePersister 时,该页面的行为保持不变,但是用于大量状态数据的存储将从隐藏字段转换为会话状态。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者