asp.net解密一:頁面重繪,IsPostBack

來源:互聯網
上載者:User

新手入門,多多關照。

http協議是無狀態的,當我們點擊提交按鈕後,提交到處理頁面,如果處理頁面時當前頁面的話,在aspx頁面中,我們看到的結果是提交前的頁面和處理後的返回結果組合而成的頁面。他的內部實現原理實際上是這樣的:

使用者點擊提交後,讀取原頁面的內容,並重新寫回到頁面中,舉例:文字框數字自增功能:

1.模板機制,建立一個html頁IncNum.htm,作為模板

<html>

<body>

<form action="IncNum.ashx">

<input type="text" name = "txtnum" value="@balue"/>

<input type="hidden" name="IsPostBack" value="true"/>

<input type="submit"  value = "自加"/>

</form>

</body>

</html>

2.建立一個ashx頁面作為處理頁面IncNum.ashx,處理代碼如下

public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/html";
        string ispostback = context.Request["IsPostBack"];

   string value ="0";

   if(ispostback=="true")//是提交  

  {

    int num = Convert.ToInt32(context.Request["txtnum"]);

    num++;

    value = num.TOString();

  }

  string fullpath = context.Server.MapPath("IncNum.htm");//擷取模板檔案的路徑

  string content=File.ReadAllText(fullpath);//讀模數板檔案

  content = content.Replace("@value",num);將自加後的內容替換

  context.Response.write(content);

    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

 

 

 

解釋一:IsPostBack實際上就是表單中的隱藏欄位,它的value固定式true,當使用者點擊“自加”按鈕後,IspostBack同樣也被提交到伺服器端,處理常式讀出了這個值便可以判定頁面是被提交的,然後讀取提交值作相應處理,如果讀不到,則頁面時首次進入,我們可以欺騙伺服器:直接在瀏覽器中輸入地址http://localhost:1128/IncNum.ashx?IsPostBack=true,則處理常式會把頁面當成提交的頁面處理。

在aspx頁面中的IsPostBack就是使用這個原理實現的。

解釋二:ashx頁面是給使用者看的,html頁面是模板頁面,使用者看不到,html頁面中@value相當於是一個預留位置,ashx頁面讀取html頁面,並用字串替換方法把預留位置替換成處理後的值。然後重新寫回到頁面中,這就是為什麼提交後的頁面還會保持原來的樣子。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.