- WebForm分為兩個文件aspx和aspx.cs,aspx是頁面模板,是頁面描述文件,就是html的內容,和aspx結合的更好,不用像一開始那樣程序員自己去填充模板,控件都是定義在aspx中,內聯的JavaScript、CSS也是寫在aspx中的,,服務端的C#代碼是定義在aspx.cs中。aspx控件頁面長相,cs控制程序邏輯,這種“前aspx后cs”的方式就被稱為CodeBehind。aspx就是模板引擎
- cs可以調用aspx中的控件,aspx中也可以訪問cs中定義的字段、函數,還可以編寫復雜的C#代碼, for等所有C#代碼都可以寫在aspx中(不推薦)
- 前面 <%=UserName %> <%SayHello(); %> <%if (UserName == "aaa") { UserName = "bbb"; } %> 后面
"=" 表示在aspx端表示輸出cs里面UserName屬性的值
- 使用的函數、代碼相當於在這個位置調用函數、執行代碼。注意aspx中調用cs的成員級別必須是protected或者public,不能是private的。(因為頁面aspx是cs服務器端代碼類的子類,繼承的子類只能調用父類的public protected,不能調用private)
- <%%>中的代碼是運行在服務器端的,是C#語法,其他部分是運行在瀏覽器端的,是html、JavaScript語法。
比如我在aspxcs文件夾里面建立了一個叫做Form1.aspx的頁面
如下:


也就是說當訪問頁面的時候,父類是后台處理程序里面的那個aspxcs_Form1,而瀏覽器端的頁面叫做ASP.aspxcs_form1_aspx
使用Reflector反編譯dll文件,可見
ASP.aspxcs_form1_aspx繼承自
aspxcs_Form1

父類(我們所寫的后台代碼)如下:

當在頁面中寫入C#代碼以后,其內部樣式是:


可以看到瀏覽器頁面子類的代碼樣子是

aspx編譯器幫助我們將頁面中的C#代碼,編譯成為了一個asp.net中的類,然后執行。