ASP.Net 2.0&UP ViewState丢失问题
没有仔细研究过ViewState,最近出现的问题让人头痛不已。
ViewState会在某些特定情况下消失,且很难捕捉到。查了一些技术文章,都是说ViewState的机制是将信息存在页面的hidden input里面,似乎不可能存在这些问题,给出的理由无非是在某个地方被某个不小心的程序员给禁掉或清除掉了。但找了很久也没找到这个地方......
一个偶然的机会看到了一篇关于ViewState机制的文章,当看到下面这段文字时顿时豁然开朗
----------------------------我是分割线-------------------------------------------------------------------------
呵呵,有的。从APS.NET2.O开始,微软为我们提供了!顾名思义,这个类可以将VIEWSTATE存储在Session中,而不是Hidden Input中。这可以用于大数量级的VIEWSTATE处理,它的实现也异常简单
---转自“自由飞” http://www.cnblogs.com/freeflying/archive/2010/01/03/1638264.html
----------------------------我是分割线-------------------------------------------------------------------------
果然在基类中找到了如下方法:
///设置 ViewState对象 保存在Session中
protected override PageStatePersister PageStatePersister
{
get
{
return new SessionPageStatePersister(this);
}
}
原来自从2.0以来,多了一种选择,可以将ViewState信息存到Session中,Session和页面相比具有安全、节省带宽资源等好处、减少客户端资源消耗,但是但是但是缺点也不少。由于实际保存在Session中,Session的所有缺点都会具备。如果没有个好的Session管理车略极容易出现丢ViewState丢失的情况。
所以大家在选择ViewState的保存机制时要小心啊。除非必要建议还是用它本来的方式吧。
///设置 ViewState对象 保存在页面中
protected override PageStatePersister PageStatePersister
 
相关文档:
控制网站分辨率 我们可以 用 frameset
虽然 asp.net不支持这个属性 但是功能是可以实现的
如 :
<frameset name="main" rows="105,*" frameborder="no" border="0" framespacing="0">
<frame src="xx.aspx" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" /> ......
在asp.net里面,很多时候使用session来保存一些对象,比如说购物车等等,有很多时候,就算你设置了session超时的时间,session还是会无缘无故的丢失,这里有一种比较简单的方法可以设置session丢失的时间。
在web.config里面如下配置
<sessionState
& ......
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.Timers;
using System.Data;
using System.Data.SqlClient;
namespace SMS_joke
{
/// <summary>
/// Global 的摘要说明。
/// </summary>
public class ......
在web开发中,经常要用到控件的OnClientClick与OnClick事件.
如果使用不当,经常会遇到一些意料之外的事情发生,让人摸不着头脑.下面就将我的一些小小总结道来:
首先我们要了解这两个事件:
OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行.
OnClick事件是服务器端事件处理 ......
ASP.NET(C#)返回上一页(后退)代码
2008-08-10 10:32
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["BackUrl"] = Request.UrlReferrer.ToString();
}
}
/// <s ......