zoukankan      html  css  js  c++  java
  • 【转】去除.Net页面中的ViewState乱码

    C# code
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    //添加引用
    using System.IO;
    using System.Threading;
    namespace CCL
    {
        /// <summary>
        /// BasePage 的摘要说明
        /// </summary>
        public class BasePage : System.Web.UI.Page
        {
            #region 解决ViewState过于庞大的问题
            //由于这里添加了目录,所以要建立App_Data/ViewState目录.
            protected override object LoadPageStateFromPersistenceMedium()
            {
                string viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
                string stateStr = (string)Cache[viewStateID];
                if (stateStr == null)
                {
                    string fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID);
                    stateStr = File.ReadAllText(fn);
                }
                return new ObjectStateFormatter().Deserialize(stateStr);
            }

            protected override void SavePageStateToPersistenceMedium(object state)
            {
                string value = new ObjectStateFormatter().Serialize(state);
                string viewStateID = (DateTime.Now.Ticks + (long)this.GetHashCode()).ToString(); //产生离散的id号码
                string fn = Path.Combine(this.Request.PhysicalApplicationPath, @"App_Data/ViewState/" + viewStateID);
                //ThreadPool.QueueUserWorkItem(File.WriteAllText(fn, value));
                File.WriteAllText(fn, value);
                Cache.Insert(viewStateID, value);
                base.SavePageStateToPersistenceMedium(viewStateID);
            }
            #endregion
        }
    }

  • 相关阅读:
    JAVA 一个接口多个实现类
    关于Web服务器
    美团买菜IOS版设备风控浅析与算法还原
    阿里App防Bot新版AliTigerTally方案浅析与算法还原1
    使用php的openssl_encrypt和python的pycrypt进行跨语言的对称加密和解密问题
    一个把人民币小写转换为大写中文的方法
    《重构》代码坏味道
    git 合并分支
    java中SPI机制 代码改变世界
    echo print print_r的区别
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416774.html
Copyright © 2011-2022 走看看