本篇內容介紹了“ASP.NET頁面有什么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
創(chuàng)新互聯建站服務項目包括任城網站建設、任城網站制作、任城網頁制作以及任城網絡營銷策劃等。多年來,我們專注于互聯網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯網行業(yè)的解決方案,任城網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到任城省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
與剛接觸 ASP.NET頁面的開發(fā)人員交談時,他們通常向我提出的***個問題就是:“那個 ViewState 到底是什么?”他們的語氣中流露出的那種感覺,就象我來到一家異國情調的餐館,侍者端上一道我從未見過的菜肴時的那種感覺 - 既疑惑不解,又充滿好奇。但肯定有人認為它不錯,否則就不會提供了。所以,我會先嘗一嘗,或許會喜歡上它,盡管它看上去的確很古怪!
對于 ViewState 也是如此,但是如果適應了它的風格,您會發(fā)現在許多情況下,您將樂于在自己的 ASP.NET 應用程序中使用 ViewState,因為它可以幫助您使用更少的代碼完成更多的工作。但是,有時也會對 ViewState 完全棄之不用。下面我們就這兩種情況分別進行闡述,不過,讓我們先回答什么是 ViewState 這個問題。
答案:ViewState 用于維護頁面的 UI 狀態(tài)
Web 是沒有狀態(tài)的,ASP.NET頁面也沒有狀態(tài),它們在到服務器的每個往返過程中被實例化、執(zhí)行、呈現和處理。作為 Web 開發(fā)人員,您可以使用眾所周知的技術(如以會話狀態(tài)將狀態(tài)存儲在服務器上,或將頁面回傳到自身)來添加狀態(tài)。
此窗體與 Web 上的多數窗體一樣友好,它在出現錯誤的字段旁邊顯示一條有用的錯誤消息和一個星號。而且,窗體中還顯示了我在其他文本框和下拉列表中輸入的所有有效值。這在某種程度上是可能的,因為 HTML 窗體元素會在 HTTP 標頭中將其當前值從瀏覽器發(fā)送到服務器。
在 ASP.NET 之前,通過多次回傳將值恢復到窗體字段中完全是頁面開發(fā)人員的責任,他們將不得不從 HTTP 窗體中逐個拾取回傳值,然后再將其推回字段中。幸運的是,現在 ASP.NET 可以自動完成這項任務,從而為開發(fā)人員免除了一項令人厭煩的工作,同時也無需再為窗體編寫大量的代碼。但這并不是 ViewState。
ViewState(英文)是一種機制,ASP.NET 使用這種機制來跟蹤服務器控件狀態(tài)值,否則這些值將不作為 HTTP 窗體的一部分而回傳。例如,由 Label 控件顯示的文本默認情況下就保存在 ViewState 中。作為開發(fā)人員,您可以綁定數據,或在***加載該頁面時僅對 Label 編程設置一次,在后續(xù)的回傳中,該標簽文本將自動從 ViewState 中重新填充。因此,除了可以減少繁瑣的工作和代碼外,ViewState 通常還可以減少數據庫的往返次數。
ViewState 的工作原理
ViewState 確實沒有什么神秘之處,它是由 ASP.NET頁面框架管理的一個隱藏的窗體字段。當 ASP.NET 執(zhí)行某個頁面時,該頁面上的 ViewState 值和所有控件將被收集并格式化成一個編碼字符串,然后被分配給隱藏窗體字段的值屬性(即 )。由于隱藏窗體字段是發(fā)送到客戶端的頁面的一部分,所以 ViewState 值被臨時存儲在客戶端的瀏覽器中。如果客戶端選擇將該頁面回傳給服務器,則 ViewState 字符串也將被回傳。回傳后,ASP.NET頁面框架將解析 ViewState 字符串,并為該頁面和各個控件填充 ViewState 屬性。然后,控件再使用 ViewState 數據將自己重新恢復為以前的狀態(tài)。
如果要使用 ViewState,則在 ASPX 頁面中必須有一個服務器端窗體標記 (