ASP.NET伺服器端控制項和HTML控制項的比較

來源:互聯網
上載者:User

標籤:http   tar   ext   com   get   檔案   

區別:伺服器端控制項都會有個runat="Server"屬性,這樣才能夠在後台對其進行修改,也就是在cs代碼裡面能對其進行修改。例如,當你放個HTML控制項時,在CS代碼中引用不出控制項名,但加上runat="Server" 後在CS代碼中就能引用該控制項了。

其實ASP.NET 的伺服器控制項解析後最終返回到前台還是HTML控制項。例如當你建個頁面並放一個asp:textbox上去,然後運行頁面,查看頁面源檔案就會發現放上的伺服器控制項變成了HTML的inupt type="button"。

檢視狀態是指:由於HTTP串連屬於無狀態的,每次頁面請求都無法記錄上次請求頁面的資訊。那麼要儲存上次請求頁面上控制項的值,也就是頁面重新整理後,填寫的值不變,比如在textbox裡填了個‘a‘,頁面重新整理後還是‘a‘,.NET架構為了實現這種機制,就利用viewstate檢視狀態來儲存這些控制項的值。

然而這些控制項的值都存在什麼地方呢?運行程式,然後在頁面中查看源檔案,我們就可以看到一個input type="hidden" name="__VIEWSTATE"的標籤,這就是所謂的”視圖“。它是經過伺服器序列化過的,當伺服器再次接收後會還原序列化這些隱藏欄位的值,接著重新給這些控制項賦值,從而頁面重新整理後還能記錄上次請求時候的所有控制項的值。

伺服器控制項都會預設儲存VIEWSTATE,它有個屬性(EnableViewState)可以設定,設定為Flase就不儲存,頁面重新整理後,值也就沒了,可以做個測試放個textbox設定為EnableViewState為false,然後輸入個值,然後再用按鈕去重新整理頁面,那麼textbox會為空白,因為沒有檢視狀態記錄到上次你輸入的值。

聯繫我們

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