跨页面访问ViewState仅仅适用于通过Post方法或者Server.Transfer方法从一个页面重定向到另一个页面的情况,如果你使用Response.redirect方法将无法实现跨页面访问ViewState.

通过下面的一个例子来演示扩页面访问ViewState

我们创建两个页面,分别为:

1、ViewStateContainer.aspx:这个页面用来设置ViewState的值,并传递到另一个页面.

2、AccessViewState.aspx :这个页面用来访问ViewStateContainer.aspx页面传过来的ViewState对象.

ViewStateContainer.aspx页面代码如下:

public partial class ViewStateContainer : System.Web.UI.Page
{
     protected void Page_Load(object sender, EventArgs e)
     {

ViewState["Page1"] = "Page1 ViewState";

Server.Transfer("AccessViewState.aspx");

}

public StateBag ReturnViewState()

{

return ViewState;

}

}

在Page_Load事件中设置了一个ViewState值,并重定向到AcessViewState.aspx页面,这个页面有一个ReturnViewState方法,返回ViewState对象,返回的类型为StateBag

StateBag类:这个类主要用来存储所有HTML和服务端控件的结构,它保存了控件的attribute/value的组合信息,并能在页面请求OnInit方法之后更新控件或页面的状态

现在看一下AccessViewState.aspx页面代码:

public partial class AccessViewState : System.Web.UI.Page
{
    private StateBag PreviousPageViewState
    {
        get { 
             StateBag returnValue = null;
             if (PreviousPage != null)
             {
                Object objPreviousPage = (Object)PreviousPage;
                MethodInfo objMethod = objPreviousPage.GetType().GetMethod ("ReturnViewState");
                return (StateBag)objMethod.Invoke(objPreviousPage, null);
             }
             return returnValue;
         }
   }

protected void Page_Load(object sender, EventArgs e)
  {
       if (PreviousPage != null)
      {
           if (PreviousPageViewState != null)
           {
               Label1.Text = PreviousPageViewState["Page1"].ToString();
           }
      }
   }
}

通过Server.Transfer或者Post方法跳转的页面,可以通过PreviousPage属性获得前一页面的控件

在这个页面我们创建了PreviousPageViewState,通过反射的方法,执行前一页面的ReturnViewState方法,获得前一页面的ViewState(StateBag类型),这样就可以访问前一页面的所有ViewState对象了.

文章出自:http://www.codeproject.com/KB/aspnet/AccessViewState.aspx

转载于:https://www.cnblogs.com/duanqs/archive/2009/07/01/1514508.html

跨页面访问ViewState相关推荐

  1. PHP session跨页面访问失效问题处理

    PHP session跨页面访问失效问题处理 环境 问题说明 php.ini 部分配置 检查目录权限 检查session设置 检查cookie设置 参考文章列表 环境 使用了 LNMP提供的环境,版本 ...

  2. 如何跨服务器访问html 页面,html页面如何跨域访问另一页面内容,并将部分内容呈现出来?...

    html代码: 简介 我需要将接口界面的部分内容,显示在id为p4的块中,我自己这边服务器请求是跨域访问,如何操作? jquery ajax来完成,load()方法不能跨域,所以不能用:我自己的代码如 ...

  3. 利用代理页面解决html iframe跨域访问网站问题

    原文:利用代理页面解决html iframe跨域访问网站问题 源代码下载地址: http://www.zuidaima.com/share/1854884509142016.htm 在做项目的时候遇到 ...

  4. html的页面怎样直接跨域访问,【HTML】iframe跨域访问问题

    概述 本地同一浏览器访问本地HTML文件和访问服务器端HTML文件,本地Iframe没有自适应高度,而服务器端的Ifrane自适应了高度. 1.问题重现: Chrome 版本 41.0.2272.10 ...

  5. WebBrowser控件跨域访问页面内容

    原文出处 :http://blog.csdn.net/nocky/article/details/6056802 源码出处:http://www.codecentrix.com/blog/wnd2do ...

  6. AJAX跨域访问解决方案

    Case I. Web代理的方式 (on Server A) 即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果.此方案可以解决 ...

  7. js跨域访问,No 'Access-Control-Allow-Origin' header is present on the requested resource

    js跨域访问提示错误:XMLHttpRequest cannot load http://...... No 'Access-Control-Allow-Origin' header is prese ...

  8. 用P3P header解决IE下iframe跨域访问时候session丢失的问题

    用P3P header解决IE下iframe跨域访问时候session丢失的问题 整合客户的登录时,或者其他一个网站通过iframe时,特别是一个http页面,访问一个https页面时,常常会sess ...

  9. 关于JavaScript为何要限制跨域访问

    对于JavaScript限制跨域访问的原因一直不明白,因为他给我的开发过程中带来不少的麻烦,也实在想不明白JavaScript限制跨域的作用,今天带着这个疑问到开元中国提问了,没想到一个大神的解答让我 ...

最新文章

  1. Datawhale组队学习周报(第021周)
  2. github md文件里显示markdown公式的解决办法
  3. 和Facebook竞争,社交平台Mico怎样在1年内获得3000万用户?
  4. mfc 怎样动态设置static text 的可见属性
  5. 深入理解javascript原型和闭包(3)——prototype原型
  6. 中国开发者数量全球第二,C 语言一跌再跌!GitHub 年度报告重磅发布
  7. 计算机在经济管理中的应用,现代经济管理中计算机技术的运用
  8. Hadoop系列教程:服务器基础环境
  9. GPS模块运用: GPS模块数据提取、常规参数配置(脉冲频率、输出指定命令、定位模式等)
  10. candence的图纸大小设置_标准制图图纸尺寸大小
  11. 百度网盘分享无提取码文件的方法
  12. 溯光者:超简单,一文读懂显卡型号编码数字、字母怎么看,都是什么意思?
  13. Could not connect to SMTP host localhost port 25
  14. [2022 ICLR] Pyraformer: Low-Complexity Pyramidal Attention for Long-Range 时空序列建模和预测
  15. pandas数据清洗策略1
  16. android app 短信接收,Android创建简单发送和接收短信应用
  17. 基于人脸识别的web展示
  18. [Luogu4182][USACO18JAN]Lifeguards P[单调队列]
  19. 湖南中医药大学成考2022年下学期网络课程学习与考试工作安排
  20. Stratifyd入驻腾讯云市场,AI赋能品牌数字化升级

热门文章

  1. cmd 顺序启动服务_未能连接一个Windows服务 怎么回事
  2. 转载 2020-02-18 在KVM主机和虚拟机之间共享目录
  3. 高并发服务器开源项目,高并发服务器框架详解 - osc_qgfjs4a5的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. 理解lua中的metatable和__index
  5. RPG Maker的引擎分析(一)(二)
  6. 用C#读取数码相片的EXIF信息(一)
  7. java暂停脚本_用Rhino解析Java中的JavaScript:暂停/恢复脚本
  8. android 来电拒接_[系统漏洞]模拟耳机广播实现来电自动接听和拒接
  9. premium导入后缀为db_Python 导入txt文件到mongo
  10. Softmax Derivation