发现了Init和Load的事件的差别了
在做一个小系统的时候,居然发现了一个问题,之前一直没有重视。代码如下:
private void Page_Init(object sender, System.EventArgs e)
{
//初始化viewstate
if( Request.QueryString["id"] != null && Request.QueryString["id"].ToString() != "" )
{
this.ViewState["fid"] = Request.QueryString["id"].ToString();
}
}
{
//初始化viewstate
if( Request.QueryString["id"] != null && Request.QueryString["id"].ToString() != "" )
{
this.ViewState["fid"] = Request.QueryString["id"].ToString();
}
}
然后是:
private void Page_Load(object sender, System.EventArgs e)
{
Response.Write( this.ViewState["fid"].ToString() );
}
{
Response.Write( this.ViewState["fid"].ToString() );
}
居然在其中一个按钮后动作后,在Load事件里居然报错了。
这种情况最近经常遇到,只是稍微改了一下好像没有出错了,所以没有留心。(实际上,从代码的整体来看,没有出错,只是一个逻辑上的巧合而已)
今天再次遇到,就仔细找了一下
发现了原来在Init事件里,不处理ViewState,所以才会报错
具体请看:
http://blog.joycode.com/uestc95/articles/5042.aspx
Difficulty of making decision depends on what to lose not gain