问菜鸟问题
这样一段程序,页面里只有一个buttonpublic partial class _Default : System.Web.UI.Page
{
public static int i = 0;
public static int j = 0;
public static int m = 0;
protected void Page_Load(object sender, EventArgs e)
{
++i;
if (!IsPostBack)
{
this.Response.Output.WriteLine("<br>Now j is " + ++j+" m is "+m);
}
else
{
++m;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
--i ;
this.Response.Redirect("Default.aspx");
}
}
我的理解是:
在按过按钮之前,每次按f5就是调用pageload方法 每次ispostback=false
按按钮时,先执行pagelaod方法,这次ispostback=true;然后执行buttonclick方法,
然后再执行一遍pageload,这次ispostback=false
(redirect有没有可能是直接从ie缓存里读之前的default.aspx而不执行pageload呢)
我的理解对吗?
那么在按过按钮(触发过按钮事件)之后,再按f5,实际上的方法执行流程是怎么样的呢?每次执行pageload调用ispostback时值是怎么样的?
//调试结果是每次点击按钮,m会显示出+1,如果触发过按钮事件后按f5,m不变,但i都+1而且ispostback最终是false,很困惑。。求达人指教。 --------------------编程问答-------------------- if (!IsPostBack)
{
this.Response.Output.WriteLine(" <br>Now j is " + ++j+" m is "+m);
}
只在你第一次打开时执行 点击按钮后不执行 在按F5也是不执行的 我感觉是这样的 --------------------编程问答--------------------
同意 --------------------编程问答--------------------
这个是这样,如果buttonclick方法里把response.redirect("default.aspx")这句注释掉,确实点按钮和点按钮后的f5都不会执行if(!ispostback)里的,但点按钮之后按f5是不是完全和点按钮一个效果呢?
测试了一下,如果没有redirect那行,貌似基本上没区别,加上那行以后,点按钮m会显示+1,而按f5 m值一直显示不变,不知道为什么 --------------------编程问答--------------------
就是没有redirect,按钮和f5都能让m +1,i保持不变(+!然后-1),
如果有direct 按钮让m,i每次都+1,f5则i +1,m不变。弄不明白是为什么。。
补充:.NET技术 , ASP.NET