您的位置:首页 > 其它

页面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);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: