和之前的asp不一樣,在asp.net中爲了完全的代碼分離,咱們通常不採用<%=%>嵌入標籤中來設置一些屬性和內容。
通常來講有2種狀況:
(一)設置標籤的內容,好比<title>這裏</title>
(二)設置標籤的屬性,好比<body bgcolor=這裏>
(三)動態加載一些script
先看一下(一)和(二):
前臺
<title id="mytitle" runat="server"></title>
<body id="mybody" runat="server">
後臺
protected HtmlGenericControl mytitle;
protected HtmlGenericControl mybody;
this.mytitle.InnerText="test";
this.mybody.Attributes["bgcolor"]="#cccccc";
這裏說明3點:
(1)前臺標籤runat=server是必須的
(2)HtmlGenericControl的命名空間是System.Web.UI.HtmlControls
(3).InnerText和.InnerHtml是有區別的
好比:
前臺
<span runat="server" id="myspan"></span>
後臺
this.myspan.InnerText="<b>test</b>"
獲得的結果是
<span id="myspan"><b>test</b></span>
把後臺改成
this.myspan.InnerHtml="<b>test</b>"
獲得的結果是
<span id="myspan"><b>test</b></span>
再來看看動態加載一些script
通常來講有三種狀況
(1)在前臺放置<asp:Literal Runat="server"></asp:Literal>指定位置輸出
(2)後臺經過RegisterStartupScript和RegisterClientScriptBlock輸出
(3)Response.Write輸出
舉例以下
(1)
前臺
<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>
後臺
this.myLiteral.Text+="<script>alert('test');</script>";
查看源代碼能夠看到原來的
<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>
位置變成了
<script>alert('test');</script>
(2)
爲了更加清楚看到兩個的區別,前臺以下
<form id="Form1" method="post" runat="server">
<input type="hidden" value="test" id="myhiden">
</form>
後臺以下
Page.RegisterStartupScript("","<script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>");
Page.RegisterClientScriptBlock("","<script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>");
結果以下:只出現對話框顯示RegisterStartupScript:test
查看源代碼以下:
<form name="Form1" method="post" action="WebForm4.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwtNjU0MzcyMTk1Ozs+NmbLf6dWkF/Q/FLKKsdPPfhFXr0=" />
<script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>
<input type="hidden" value="test" id="myhiden">
<script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>
</form>
二者區別不用多說了吧
(3)
咱們再加一句Response.Write("test")
查看源代碼發現test字樣出如今最前面
test
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
用它來輸出轉向代碼比較合適
<script>location.href='page.aspx'</script>web