zoukankan      html  css  js  c++  java
  • Server.Transfer中传递ViewState方法

        当我们使用Server.Transfer时,可以将先前页面中的Request参数一起传到下一页面。但如何将ViewState一起传过去呢?
        主要方法是先将ViewState缓存起来,然后在通过缓存获取。缓存可以是Session等。
        网上有人写了方法,主要是先将ViewState用方法返回。然后在调用页面中通过反身获取。与缓存原理类似。

    例子如下:

        Default.aspx页面

        增加一个ViewState,并添加返回ViewSate的ReturnViewState()方法,最后使用Server.Transfer跳转,代码如下:

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    ViewState["vId"] = "test";
                    Server.Transfer("Tra.aspx");
                }
            }

            /// <summary>
            
    /// 用此方法返回当前页面的ViewState
            
    /// </summary>
            
    /// <returns></returns>
            public StateBag ReturnViewState()
            {
                return ViewState;
            }
        }
     

        Tra.aspx页面:

        在此页面通过反段得到先前页面的ViewState。

            protected void Page_Load(object sender, EventArgs e)
            {
                InitialData();           
            }

            /// <summary>
            
    /// 通过反射得到ViewState,并显示
            
    /// </summary>
            private void InitialData()
            {
                if (null != PreviousPage)
                {
                    Object objPreviousPage = (Object)PreviousPage;
                    MethodInfo objMethod = objPreviousPage.GetType().GetMethod("ReturnViewState");
                    if (objMethod != null)
                    {
                        StateBag viewStageBage = (StateBag)objMethod.Invoke(objPreviousPage, null);
                        if (viewStageBage != null)
                        {
                            if (null != viewStageBage["vId"])
                            {
                                Response.Write("vId:" + viewStageBage["vId"].ToString() + "<br/>");
                            }
                        }
                    }
                }           
            }
  • 相关阅读:
    Unity GeometryShader(从一个线框渲染的例子开始)
    Unity5中的MetaPass
    学习游戏渲染(Shader)的用处
    Shader的学习方法总结
    Esfog_UnityShader教程_溶解效果Dissolve
    【原创翻译】初识Unity中的Compute Shader
    Esfog_UnityShader教程_遮挡描边(实现篇)
    Esfog_UnityShader教程_遮挡描边(原理篇)
    走好脚下的路--写给迷茫的计算机专业在校生
    一款游戏如何诞生
  • 原文地址:https://www.cnblogs.com/scottckt/p/2277903.html
Copyright © 2011-2022 走看看