中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET服務器控件視圖的必要性

發布時間:2021-12-03 10:56:27 來源:億速云 閱讀:125 作者:小新 欄目:編程語言

小編給大家分享一下ASP.NET服務器控件視圖的必要性,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

ASP.NET服務器控件視圖的必要性:如果我們的服務器控件需要較完備的GUI,譬如需要控制HTML元素的附加屬性字體、顏色、高度等,那么應當從Control的子類WebControl繼承,以得到所需的基礎性能。從WebControl類派生,需要遵守通常如下的約定:

1、 包含從System.Web.UI.WebControl的命名空間的引用

2、 不能夠重載Render方法直接向輸出流提供數據,而應當重載RenderContents方法來實現

3、 通常情況下,WebControl的派生類最終在輸出流中表現為<span>標簽,但是如果自己希望使用其它的標簽,就應當重載WebControl的tagKey屬性或者TagName屬性。

ASP.NET服務器控件視圖學習的經驗(或者說MS建議):

1、如果控件生成非可視化元素或顯示給非HTML客戶端,那么應當選用Control作為符類繼承。如<meta><xml>等標簽

2、提供HTML界面的從WebControl繼承

3、擴展修改功能時應當從一個已存控件派生,但是不要從System.Web.UI.HtmlControls命名空間派生,因為vs.net設計器不承認從該類派生的控件

為了能夠支持設計器,實現設計期,那么需要考慮attribute(元數據)的編程。

ASP.NET服務器控件視圖之視圖狀態

Web編程很重要的一個方面是狀態管理,也就是解決在無狀態的http協議基礎上的狀態管理問題。在asp類web編程技術時代,這通常通過以下技術手段來解決:

1、 Session

2、 Cookies

3、 隱藏變量

4、 URL攜參

然而,以上方案都有自身的缺陷,譬如Session不宜擴展,Cookies在特定情況下可能不可用,隱藏變量不易管理,URL攜參有長度限制且容量有限。。。

綜合考慮,MS提出了基于隱藏變量方案的ViewState(視圖)的概念,通過視圖保存2個ASP.NET頁間的服務器端控件狀態。視圖是如何工作的呢?

在處理一個Web請求后,頁面框架會收集頁面控件樹中所有控件的狀態并且創建一個視圖對象。每一個Control都有一個ViewState字典保存自己的狀態,當輸出html到客戶時將全部ViewState進行串行化為一個字符串表達式,作為隱含變量發送到客戶端,通常情況下我們將視圖的串行化子符串在服務器同客戶端間進行傳遞,上一個請求的隱含變量會回傳到服務器端進行并行化,然后“還原”給服務器控件。本質上,是一個隱含變量,但是在隱含變量基礎上加入了ASP.NET的管理功能,這就是視圖的本質。

Control的EnableViewState決定了控件是否同意將自己的狀態交給自動化的視圖管理。

當一個控件需要保存狀態時候,沒人可以支持保存的屬性為int32 boolean 等“簡單原生”數據類型。如果是較為復雜的屬性值類型,需要編程者提供類型轉換器,將值數據轉換為字符串,若未提供,那么采用代價高昂的二進制串行化功能(逐個byte的進行)。視圖數據在傳遞過程中通過傳遞一個附加的摘要來確保數據不被篡改(但無法保證不被窺探,畢竟base64編碼近乎明文)。

看完了這篇文章,相信你對“ASP.NET服務器控件視圖的必要性”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柯坪县| 平山县| 潜江市| 汪清县| 富平县| 崇文区| 日土县| 榆社县| 随州市| 泌阳县| 宜州市| 河间市| 达拉特旗| 安远县| 文水县| 临江市| 文成县| 闽侯县| 牡丹江市| 泗水县| 准格尔旗| 兰西县| 青铜峡市| 瓮安县| 洛宁县| 泉州市| 青海省| 平顶山市| 静安区| 师宗县| 都昌县| 庄浪县| 辽宁省| 浦县| 夏河县| 如东县| 临清市| 武隆县| 福海县| 霍州市| 嘉定区|