asp+與asp的區別(5)

來源:互聯網
上載者:User
asp+|區別 伺服器端的控制如何工作?
作 者 : 青苹果電腦工作室


這是如何?的?關鍵是runat="server" 屬性。要瞭解這是如何進行的,看看瀏覽器內頁面
的原始碼。是這樣的:

〈 HTML 〉
〈 BODY 〉
You selected 'Windows 98' for machine 'tizzy'.
〈 FORM name="ctrl0" method="post" action="pageone.aspx" id="ctrl0" 〉
〈 INPUT type="hidden" name="__VIEWSTATE" value="a0z1741688109__x" 〉
Machine Name:
〈 INPUT type="text" id="txtName" name="txtName" value="tizzy" 〉
〈 P / 〉
Operating System:
〈 SELECT id="selOpSys" size="1" name="selOpSys" 〉
〈 OPTION value="Windows 95" 〉Windows 95〈 /OPTION 〉
〈 OPTION selected value="Windows 98" 〉Windows 98〈 /OPTION 〉
〈 OPTION value="Windows NT4" 〉Windows NT4〈 /OPTION 〉
〈 OPTION value="Windows 2000" 〉Windows 2000〈 /OPTION 〉
〈 /SELECT 〉
〈 P / 〉
〈 INPUT type="submit" value="Submit" 〉
〈 /FORM 〉
〈 /BODY 〉
〈 /HTML 〉

用這個ASP+ 代碼建立 〈 FORM 〉 :

〈 FORM runat="server" 〉
...
〈 /FORM 〉

當頁面被ASP+執行時,到瀏覽器的輸出是:

〈 FORM name="ctrl0" method="post" action="pageone.aspx" id="ctrl0" 〉
...
〈 /FORM 〉

可以看到action 和 method 屬性是ASP+自動建立的,所以表單中控制的值就會被郵遞迴同一頁。
ASP+還為表單增加唯一的id 和 name 屬性,因為我們沒有提供。但是如果你確實指定了這些屬性,
就會使用你所指定的值。

如果包含了method="GET" 屬性,表單的內容就作為查詢字串的一部分被發送給伺服器,同
以前版本的ASP一樣,自動狀態管理就不再有效。

在表單內,用這樣的ASP+ 代碼建立文字框:

〈 INPUT type="text" id="txtName" runat="server" 〉

瀏覽器的結果是這樣的:

〈 INPUT type="text" id="txtName" name="txtName" value="tizzy" 〉

可以看到當表單被提交時,ASP+以控制中的文本值自動增加了value 屬性。它還保留了我們
提供的name 屬性,還以同樣的值增加了一個id屬性。

我們為〈 SELECT 〉 列表寫了以下代碼:

〈 SELECT id="selOpSys" size="1" runat="server" 〉
〈 OPTION 〉Windows 95〈 /OPTION 〉
〈 OPTION 〉Windows 98〈 /OPTION 〉
〈 OPTION 〉Windows NT4〈 /OPTION 〉
〈 OPTION 〉Windows 2000〈 /OPTION 〉
〈 /SELECT 〉

ASP+ 被迫輸出這個HTML,適當的〈 OPTION 〉元素 有一個selected屬性:

〈 SELECT name="selOpSys" id="selOpSys" size="1" 〉
〈 OPTION value="Windows 95" 〉Windows 95〈 /OPTION 〉
〈 OPTION selected value="Windows 98" 〉Windows 98〈 /OPTION 〉
〈 OPTION value="Windows NT4" 〉Windows NT4〈 /OPTION 〉
〈 OPTION value="Windows 2000" 〉Windows 2000〈 /OPTION 〉
〈 /SELECT 〉

同樣建立一個唯一的id 屬性,並自動給〈 OPTION 〉元素增加相匹配的 value 屬性。(如果我們
在頁面中提供了自己的value屬性,將被保留)。

所以你可以看到,並沒有使用什麼神奇的手段。都是標準的HTML,沒有客戶機側指令碼庫,也
沒有ActiveX 控制或 Java applets。同樣重要的一點是在伺服器上根本沒有儲存任何狀態。相反,
只是用標準的方法將值簡單地郵遞給伺服器。在頁面發送給客戶之前,通過請求,值由修改伺服器
控制的HTML儲存並維護。



聯繫我們

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