Asp.net知識初步小結

來源:互聯網
上載者:User

1、Page_Load事件中的!Page.isPostBack:

    Page_Load子程式在每次頁面載入的時候都會運行。如果只想在第一次載入此頁面的時候執行Page_Load中的代碼,可以使用Page.IsPostBack屬性。如果Page.IsPostBack屬性為false,頁面是第一次被載入,如果為true,則頁面是被“投遞”(post)回伺服器。


舉例子:

protected void Page_Load(object sender, EventArgs e)        {            if (!Page.IsPostBack)            {    //判斷是否是第一次載入頁面,如果是第一次載入頁面則把文字框的內容清空                this.txtUserName.Text = "";                this.txtUserPwd.Text = "";            }                            }

說明:如果Page.IsPostBack==false則文字框內容清空,表示頁面是第一次載入。


     Page.IsPostBack表示是不是回傳動作.所謂的回傳就是在頁面載入以後,在本頁有提交伺服器的動作.Page.IsPostBack    ==    true表示是回傳;為了響應用戶端的請求,Page.IsPostBack==false,所以正確應用好Page.IsPostBack能大大的提高應用程式的效能。


總結:

1)IsPostBack只有在第一次開啟的時候是false,其它時候都是true


2)每次頁面Load的時候,根據需要把每次都要載入的代碼放在IsPostBack中,只需要載入一次的代碼放在if(!IsPostBack)中。


3)每次使用者回傳伺服器任何資訊的時候,都會引發isPostBack屬性用來判斷此使用者是否曾經做過登陸或者其他事件


4)Post方式如果Request中沒有請求值,即Request.Form=null則IsPostBack=false;Get方式如果Request中沒有請求值,即Request.QueryString=null則IsPostBack=false。


5)一般情況判斷Request中如果沒有請求值則IsPostBack=false。如果有請求值但是不包括“__VIEWSTATE”等一些特殊的鍵或值,則IsPostBack=false(每次請求後.Net架構會將一些特殊的隱藏欄位“__VIEWSTATE”等返回給用戶端)。還有一些特殊的情形是上面的規則不能正確判斷的需要特殊處理的,這些情形包括Server.Transfer,Response.Redirect,CrossPagePostBack,Server.Execute,發生了頁面元素變化及重新編譯。


2、Request與Response的區別

    Request是用戶端向伺服器發送請求;Response是伺服器向用戶端輸出資訊。

   (1) Request的對象的屬性:

        Form:獲得網頁中定義的表單變數的集合;

        QueryString獲得以名/值對錶示的HTTP查詢字串變數的集合。變數值會在地址欄顯示,安全性不能保證。傳遞Form表單中的控制項值用Request.Form擷取值,地址欄中傳遞的參數用Request.QueryString擷取。


    1>.get與post兩種提交的區別:

    get是從伺服器上擷取資料,post是向伺服器傳送資料。

    get是把參數資料隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到;post是通過HTTPpost機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。

   對於get方式,伺服器端用Request.QueryString擷取變數的值,對於post方式,伺服器端用Request.Form擷取提交的資料.

  get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。

  get安全性非常低,post安全性較高,包含機密資訊的話,建議用Post資料提交方式.但是執行效率卻比Post方法好.

  在做資料查詢時,建議用Get方式;而在做資料添加、修改或刪除時,建議用Post方式。

 

2>拿登陸介面來做例子:


a.get方式

<form  method="get" action="WebForm2.aspx">        <table border="0" style="width:100%;">            <tr>                <td> </td>                <td>                    <input id="Text1" name="txtUserName" type="text" /></td>                <td> </td>            </tr>            <tr>                <td class="auto-style1"></td>                <td class="auto-style1">                    <input id="Text2" name="txtUserPwd" type="text" /></td>                <td class="auto-style1"></td>            </tr>            <tr>                <td> </td>                <td>                    <input id="Submit1" type="submit" value="登入" /></td>                <td> </td>            </tr>        </table>    </form>


接收用get方法傳輸的資料寫法:

  protected void Page_Load(object sender, EventArgs e)        {                        string userName =Request.QueryString["txtUserName"].ToString();            string userPwd =Request.QueryString["txtUserPwd"].ToString();                        if (userName =="a"&&userPwd =="a")            {                Response .Redirect ("WebForm1.aspx?userName="+userName+"&userPwd="+userPwd);            }            else            {                Response.Redirect("login.html");            }        }


b.post方式

<form  method="post" action="WebForm2.aspx">        <table border="0" style="width:100%;">            <tr>                <td> </td>                <td>                    <input id="Text1" name="txtUserName" type="text" /></td>                <td> </td>            </tr>            <tr>                <td class="auto-style1"></td>                <td class="auto-style1">                    <input id="Text2" name="txtUserPwd" type="text" /></td>                <td class="auto-style1"></td>            </tr>            <tr>                <td> </td>                <td>                    <input id="Submit1" type="submit" value="登入" /></td>                <td> </td>            </tr>        </table>    </form>


接收用Post方法傳輸的資料寫法:

protected void Page_Load(object sender, EventArgs e)        {            string userName = Request.Form.Get("txtUserName").ToString();            string userPwd = Request.Form.Get("txtUserPwd").ToString();                       if (userName =="a"&&userPwd =="a")            {                Response .Redirect ("WebForm1.aspx?userName="+userName+"&userPwd="+userPwd);            }            else            {                Response.Redirect("login.html");            }        }


(2)Response常用方法:

       write:用於向當前HTTP響應流寫入文本,使其成為返回頁面的一部分;

       Redirect:將使用者從請求頁面重新定向或帶到另一頁面。


3、html,htm,xml區別

    htm也就是html.都是靜態網頁檔案的副檔名。htm是DOS三字元副檔名時代而來;html是windows時代支援多字元副檔名。

    Xml是用來儲存資料的,重在資料本身。而HTML是用來定義資料的,重在資料的顯示模式。XML是結構化的資訊中包含了一些內容(例如文字,圖片等)和一些指示出內容的重現手段的標記(例如,在一個章節頭部的資訊和其腳註處的資訊是有不同含義的。)所有的文檔都有不同的結構。一種標記語言,是定義文檔結構的機制。XML規範定義了一個對文檔進行標記的標準。


總結:ASP.NET這隻是一個開端,還有更多的知識等待我們去學習,更多的寶藏等待我們去挖掘。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.