在asp.net頁面的aspx文件中允許使用<script runat="server">和<%%>標記來插入代碼片斷。這兩種方式有什么區別呢?
<script runat="server">標記中的代碼跟.cs文件中的代碼地位是一致的,比如像下面這樣聲明一段事件處理代碼
<script runat="server"> PRotected void TextBox1_TextChanged(object sender, EventArgs e) { Trace.Warn("TextBox1_TextChanged"); } </script>
<%%>標記,其實更多的是為了兼容asp的語法而存在的
在asp.net中是用該標記有如下限制:
1.內聯代碼塊必須使用頁的默認語言進行編寫。
2.不能在<%%>標記中聲明函數或者子例程
另外需要注意的是<%%>標記內的內聯代碼是在頁面呈現的Render過程中執行的
已經接近頁面生命周期的尾部
總結一下:
<scriptrunat="server"></script>,在服務器端運行; <%%>可以將服務器端的代碼返回值顯示到客戶端。
②<script runat=server>、<%%>和<%#%>的區別<script runat=server>:Code Declaration Blocks 代碼聲明區,用于聲明此ASPX頁面動態編譯為CS文件時的成員變量和方法,此區域內不能直接放置語句和表達式,只能放置方法、屬性等內容<%%>:Code Render Blocks 渲染代碼區,放置在此區域內的代碼將會被編譯到PAGE類的Render方法中,編譯順序按照ASPX的自然順序。此區域內只能放置語句不能直接放置表達式,也不能放置方法屬性等;<%=[表達式]%>是<%Response.Write([表達式]);%>的縮寫.<%#%>:Data Binding Expression Syntax 數據綁定表達式,在其中放置與數據綁定相關的表達式。新聞熱點
疑難解答