日期:2014-05-17  浏览次数:20942 次

所谓的IsPostBack

1、IsPostBack描述:
Gets a value indicating whether the page is being loaded in response to a client postback,
or if it is being loaded and accessed for the first time.
2、在A.aspx中:
if (!IsPostBack) {
string msg = Request["msg"]; //获得请求参数.
if ("tran" == msg){
Server.Transfer ("~/B.aspx"); //内部重导向.
}
}
3、在B.aspx中:
if (!IsPostBack) {
string msg = Request["msg"];
Response.Write ("非IsPostBack" + msg); //输出请求参数.
}
4、我在A.aspx中view in browser,并在地址栏最后输入"?msg=tran",
当然在B.aspx中能输出参数。
5、问:对于“1”中“IsPostBack”,直接在地址栏输入也算“提交”的方式是吧,
是不是因为这里不是input、textarea等的name、value提交,且在这里的viewstate没有提交,所以不是“IsPostBack”。
有一点点晕了,我可以这样理解么?

------解决方案--------------------
当你设定一个控件为AutoPostBack的时候,触发它,或产生一个POST方式的http提交请求,并且附带了ViewStates用于跟踪控件的状态,此时就是IsPostBack=true。直接在浏览器中输入,发送GET请求,就不符合这个条件。