什么是asp.net的web forms
asp.net web forms 頁面框架是可升級的通用語言運行時刻(clr)程序模型,用來在服務器端動態(tài)生成web頁面。(美國人說話就是別扭,其實web forms就是asp.net編寫的頁面)
作為asp的合理演化(asp.net對現(xiàn)存的asp提供語法兼容),asp.net web forms框架的設計目的,是用來解決asp模式的不足。它提供:
· 創(chuàng)建和使用可重用的用戶界面控件,封裝常用的功能,減少頁面開發(fā)者書寫代碼的工作量。
· 為開發(fā)者提供結構清晰、風格井然的頁面邏輯(而不是“意大利面條”的結構)。
· 提供強大的所見即所得(wysiwyg)的頁面開發(fā)工具(asp代碼對于工具是不透明的)
本教材的這一部分內(nèi)容提供高水平的代碼,對asp.net web forms的關鍵功能做一個初步介紹。后續(xù)的章節(jié)將更深入地剖析asp.net web forms的功能
書寫第一個web forms頁面
asp.net web forms 頁面是以aspx為擴展名的文本文件。他們可以通過iis虛擬根目錄樹來進行配置。當瀏覽器客戶端請求.aspx資源的時候,asp.net運行時刻庫分析和編譯目標文件,形成.net框架類。這個類能夠用來動態(tài)的處理即將開始的請求。(注意:.aspx文件只有在第一次被訪問的時候編譯;編譯后的結果在以后的請求中被重復利用)。
可以簡單的把html文件的擴展名改為aspx,從而得到一個asp.net文件(不需要修改任何代碼)。例如,下面的例子演示一個html頁,它收集用戶的姓名和分類偏好,然后在按下按鈕的時候提交表單。
c# intro1.aspx
重要提示:注意點擊lookup 按鈕的時候什么也不會發(fā)生。這是因為.aspx文件僅僅包含靜態(tài)的html(沒有任何動態(tài)的內(nèi)容)。因此,同樣的html將在每一次往返的的時候,返回給客戶端,表單的字段內(nèi)容在提交過程中丟失。
使用asp的<% %>引用標志
asp.net對現(xiàn)有的asp頁面提供語法兼容。這種兼容包括<% %>代碼引用塊,在.aspx文件中,它可以和html內(nèi)容混合使用。這些代碼塊在引用的時候從上倒下執(zhí)行。
下面的例子演示了在html塊中,如何使用<% %>引用標志來實現(xiàn)循環(huán)(依次增大字體尺寸)
c# intro2.aspx
重要提示:與asp不同,上面<% %>塊中使用的代碼是真正編譯過的,而不是腳本引擎的解釋執(zhí)行。因此提高了運行時的執(zhí)行效率。
asp.net頁面開發(fā)者可以利用<% %>代碼塊動態(tài)的修改html的輸出,就像使用asp一樣。例如,下面的例子演示了如何使用<% %>實現(xiàn)響應客戶端提交的結果。
c# intro3.aspx
重要提示:<% %>代碼塊提供了一種有力的方法,可以實現(xiàn)從asp.net頁面定制和操作文本輸出,但是,卻沒有提供結構清晰的程序模式。正如上面的例子,開發(fā)者僅僅使用<% %>代碼塊,就必須在請求發(fā)送往返中,自己管理頁面狀態(tài),自己管理解釋后送出的值。
asp.net服務器控件介紹
除了使用(或者說作為一種代替)<% %>來編動態(tài)內(nèi)容的程序以外,asp.net頁面開發(fā)者可以使用asp.net 服務器控件來設計web頁面程序。
在.aspx文件中聲明服務器空間的時候,使用asp.net特定的標簽或者使用包含 runat="server" 屬性的html標簽。html標簽作為控件使用的情況,在名稱空間system.web.ui.htmlcontrols中定義。任何不能映射到控件的標簽,被賦值為system.web.ui.htmlcontrols.htmlgenericcontrol類型。
下面的例子使用了4個服務器控件:<form runat=server>, <asp:textbox runat=server>, <asp:dropdownlist runat=server>, 和 <asp:button runat=server>。在運行時刻,這些服務器控件自動生成html內(nèi)容。
c# intro4.aspx
重要提示:在傳遞到服務器端的循環(huán)往返(rount trips-----我不知道如何準確的翻譯這個詞匯,他的意思是從客戶端提交數(shù)據(jù)到服務器,然后從服務器返回數(shù)據(jù)的過程)過程中,這些服務器控件自動保持任何客戶端輸入的值(它代替了循環(huán)往返的時候,表單字段保存在<input type="hidden">中的做法)。另外請注意,asp.net中保持數(shù)據(jù)不需要任何客戶端的腳本支持除了支持標準的html輸入控件之外,asp.net允許開發(fā)者在頁面中使用更豐富的定制控件。例如,下面的例子演示了如何在頁面上使用<asp:adrotator>控件,實現(xiàn)動態(tài)輪顯廣告c# intro5.aspx
|
新聞熱點
疑難解答
圖片精選