页面viewstate视图处理方法
2012-07-19 11:31
447 查看
//页面需要继承该类文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Web.UI;
using System.Threading;
namespace WebApplication2
{
public class UrlPage : System.Web.UI.Page
{
//取
protected override object LoadPageStateFromPersistenceMedium()
{
string viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
// var 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 = this.Server.MapPath(@"~/App_Data/ViewState/" + viewStateID);
//var fn = Path.Combine(this.Request.PhysicalApplicationPath, @”App_Data/ViewState/” + viewStateID);
//ThreadPool.QueueUserWorkItem(obj => File.WriteAllText(fn, value));
File.WriteAllText(fn, value);
Cache.Insert(viewStateID, value);
base.SavePageStateToPersistenceMedium(viewStateID);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Web.UI;
using System.Threading;
namespace WebApplication2
{
public class UrlPage : System.Web.UI.Page
{
//取
protected override object LoadPageStateFromPersistenceMedium()
{
string viewStateID = (string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;
// var 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 = this.Server.MapPath(@"~/App_Data/ViewState/" + viewStateID);
//var fn = Path.Combine(this.Request.PhysicalApplicationPath, @”App_Data/ViewState/” + viewStateID);
//ThreadPool.QueueUserWorkItem(obj => File.WriteAllText(fn, value));
File.WriteAllText(fn, value);
Cache.Insert(viewStateID, value);
base.SavePageStateToPersistenceMedium(viewStateID);
}
}
}
相关文章推荐
- form submit时将__VIEWSTATE和__VIEWSTATEGENERATOR一起post到另外的页面,出现验证视图状态 MAC 失败。
- 去掉ASP。NET页面中的VIEWSTATE非存硬盘方法
- Web页面传值方法----ViewState
- 去掉viewstate保持在页面中的一大串字符的方法
- ASP.NET页面中去除VIEWSTATE视图状态乱码
- 去掉viewstate保持在页面中的一大串字符的方法
- 在CI视图中再用load_view()载入视图文件的处理方法
- android RecycleView 嵌套问题切换页面跳动问题、嵌套展开显示不全问题处理方法
- aspx页面里不输出 nput type=hidden name="__VIEWSTATE" 的方法
- 去掉ASP。NET页面中的VIEWSTATE非存硬盘方法
- TrackViewState()方法与视图状态保存
- Android 7.0系统webview 显示https页面空白处理方法
- 重写PageStatePersister属性 自定义压缩方法来减小ViewState大小来优化页面加载时间
- 在页面中保存页面变量的方法 viewstate
- ajax提交session超时跳转页面使用全局的方法来处理
- ASP.NET状态管理之十一(视图状态ViewState)
- WKWebView遇到_blank的处理方法
- js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法
- (转) UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
- ASP.NET Core - Razor页面之Handlers处理方法