最為程序員,我們再也不必將HTML和代碼混在一起,再也不必從上往下一行一行的寫代碼了。ASP.NET讓代碼和表現(xiàn)分開,使用了事件驅(qū)動的編程模式。在這里,我們將看到ASP.NET中Web Form的基本結(jié)構(gòu)。
ASP.NET的頁面是事件驅(qū)動和面向?qū)ο蟮摹>褪钦f,程序員能為事件提供代碼,如按鈕的點擊,頁面的調(diào)用等等。在頁面中能被編程訪問的每個標記都有一個runat=server的屬性。盡管標準的HTML控件仍能被使用,但ASP.NET提供了更加強大的服務端控件。這些控件提供了一套自己的方法和屬性,通過它們能充分的定制控件的輸出。這些控件和頁面一起被編譯,它們依據(jù)客戶端瀏覽器的版本輸出不同的HTML。這就使得我們不需要考慮瀏覽器兼容的問題,一個頁面可以在任何的瀏覽器上運行。
我們建立一張頁面,兩個輸入框,收集訪問者的名字和最喜歡的顏色。另外,我們希望結(jié)果傳回本身,然后在最上方顯示一行信息,并維持輸入框中的內(nèi)容。
這是傳統(tǒng)的ASP頁面:
<%@ Language=VBScript %>
<%If Request.Form.Count <> 0 Then
Response.Write "Your name is "
Response.Write Request.Form("txtName")
Response.Write ", and your favorite color is "
Response.Write Request.Form("selColor")
Response.Write "
"
End If%>
What is your name: |
"> |
What is your favorite color: |
|
|
我們看到,在這里我們不得不將ASP代碼和HTML混在一起,使得代碼非常的難以看懂,想象一下如果一個非常復雜的頁面……
我們的頁面首先判斷是否是回傳,還是第一次訪問。我們通過檢查Request.Form集合。如果是0,表示是第一次訪問,否則表示提交的按鈕被按下了,我們將通過Response.Write輸出一條信息給用戶。
<%If Request.Form.Count <> 0 Then
Response.Write "Your name is "
Response.Write Request.Form("txtName")
Response.Write ", and your favorite color is "
Response.Write Request.Form("selColor")
Response.Write "
"End If%>
對于我們表單中的每個元素,我們必須通過代碼來使它們保持狀態(tài)。這些代碼簡單而相似。