在asp.net中經常出現包含這種形式<%%>的html代碼,總的來說包含下面這樣幾種格式: 一. <%%> 這種格式實際上就是和asp的用法一樣的,只是asp中里面是vbscript或者javascript代碼,而在asp.net中是.net平臺下支持的語言。 特別注意:服務器控件中不能有<%%>語法 (這里用C#代碼)<%int a = 2;int b = 3;int c = a + b;Response.Write(c);%>二. <%#%> 如果是這種格式的話那就是asp.net下特有的,它是控件數據綁定的語法,且必須要調用該控件的DataBind()方法才執行(或者整個頁面Page.DataBind()也就是對所得控件都調用DataBind()方法,在這種情況下不管是服務器控件還是客戶端控件都會綁定) 特別注意:只有服務器控件才能用<%#%>語法(不準確的) 當整個頁面調用this.DataBinder()方法時,不管是服務器控件還是客戶端控件都會綁定 <div> Server Control:<asp:TextBox ID="TextBox1" runat="server" Text="<%#text%>"></asp:TextBox><br /><!--Server Control--> Client Control:<input type="text" id="textbox2" value="<%#text%>" /><!--Client Control--></div>aspx.cs代碼如下: protected string text;//注意這里必須申明為public或protected,否則aspx頁面(子類)無法訪問protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){this.text = "aaaaaaaaaaaaa";this.TextBox1.DataBind();//或this.DataBind(); }} 當this.TextBox1.DataBind() 運行顯示出來的效果(無法插入圖片自己測試) this.DataBind() 運行顯示出來的效果(無法插入圖片自己測試) 三. <%=%> 這種形式實際上是由<%%>擴展而來的.等價于:Response.Write(<%%>)這種形式(不標準,但能看明白),它其實也可以看成是一種綁定. aspx代碼: <label id="label1"><%=DisplayStr()%></label><br /><label id="label2" runat="server"><%=DisplayStr()%></label>aspx.cs代碼: public string DisplayStr()//注意這里必須要有返回值,否則將會發生運行時錯誤{return "bbbb";} 四.<%$%> 這種形式主要用于對web.config文件的鍵值對進行綁定:通常用于連接數據庫的字符串 特別注意:1.綁定的只能是服務器控件 2.只能綁定到服務器控件的某個屬性上。<asp:TextBox runat="server" ID="cc" Text="<%$ConnectionStrings:pubs%>"></asp:TextBox>web.config文件如下: <connectionStrings><add name="pubs" connectionString="Server=.;database=pubs;uid=sa;pwd=" providerName="System.Data.SqlClient"/></connectionStrings>這樣就能正常運行。 如果修改aspx中的文件:使用客戶端的控件 <input type="text" value="<%$ConnectionStrings:pubs%>"/>或者:不綁定到服務器控件的某個屬性上 <asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox> 運行都會出現相同的錯誤 最后注意一點: <%#%>只針對的是服務器控件的數據綁定,因此不能同<%=%>和<%%>混合使用 補充: 針對:<%=%>形式: 另外一種情況: aspx代碼: <input type="text" id="a" value=<%=DisplayStr()%> /><input id="Text1" type="text" runat="server" value=<%=DisplayStr()%> />aspx.cs代碼:public string DisplayStr()//注意這里必須要有返回值,否則將會發生運行時錯誤{return "bbbb";}如果是這樣的情況的話,就出現運行時錯誤。最后對這種<%=%>用法強調一句:盡量對客戶端控件用這種形式,畢竟它是asp常用語法,不會出現問題。 但是對于asp.net的服務器控件就可能不能完全適合的
轉載于:https://www.cnblogs.com/xrtd/p/4345352.html