asp.net 有一个的问题就是ViewState 太过庞大,会有性能的问题。为了解决方法有:
1、有压缩但是还是有性能问题(毕竟还是会有残留)
2、保存在Session ,Session的大小是有限制的,而且会造成服务器性能低下,而且我发现还有有一些残留
3、保存到数据库,这个本人没有试过,不过应该是可以的,不过不喜欢读写数据库。
这里我的办法是保存在服务器的文件里面,效果非常好,ViewState一点都没有了。
// 1 重写页面基类中的 PageStatePersister(这个很关键) public class PageBase : System.Web.UI.Page {// 重写页面基类中的 PageStatePersister(这个很关键) protected override PageStatePersister PageStatePersister { get { if (NoViewStateComp) return base.PageStatePersister; return new FilePageStatePersister(Page); } } }//2、在UI的Global.asax中定期删除过期的服务端Viewstate文件夹protected void Application_Start(object sender, EventArgs e) { // 这个在Session 保存在服务器的时候会用到 new FilePageStateManager().TimeDeleteViewStateDir(); } protected void Session_End(object sender, EventArgs e) { // 也可以在Session 失效的时候删除,不过本人不推荐如果有后退,或者有人操作页面处理很长时间会有问题 }