不能將HTML文字輸出到asp控件屬性中。您可以在代碼隱藏中設置超鏈接NavigateUrl屬性,也可以將html錨點輸出爲文字。
輸出的文字(在這種情況下,您的代碼隱藏類必須公開保護或公共財產或字段命名UrlParams)
// site.aspx
<a href="<%="http://google.pl" + UrlParams.Google%>">test</a>
設置在隱藏代碼:
// site.aspx
<asp:HyperLink runat="server" ID="link1">test</asp:HyperLink>
// site.aspx.cs or <script runat="server">..</script>
protected void Page_Load(..) {
link1.NavigateUrl = "http://google.pl" + UrlParams.Google;
}
並回答了你原來的問題。 <#
是data-binding expression,它在服務器控件屬性和數據源之間創建綁定。
編輯:事實證明,你實際上也可以使用<#
語法的字符串。它工作的關鍵是調用Control.DataBind()方法。您可以在HyperLink控件上甚至在當前頁面上調用它,因爲Page是從Control繼承的。
例子:(把這個空aspx頁面 - 無需使用數據源):
<asp:HyperLink ID="link1" runat="server" NavigateUrl='<%# "#Test" %>'>Test</asp:HyperLink>
<script runat="server" type="text/C#">
protected override void OnLoad(EventArgs e)
{
DataBind();
// or:
// link1.DataBind();
base.OnLoad(e);
}
</script>
當我使用'<%='時,它給出了以下輸出代碼:'">test' – hsz 2010-12-12 18:18:49
我從來沒有試過在NavigateUrl屬性中使用該標記(我不是故意暗示應該使用該標記標籤,我會盡快編輯答案來澄清這一點),但同樣,您不需要使用ASP.NET標籤爲您的NavigateUrl屬性分配字符串文字。 – jwiscarson 2010-12-12 18:24:03
是的,我知道,但我想從例如某個班級獲得該地址:UrlParams.Google。然後我想這樣做:'NavigateUrl ='<%=「http://google.pl」+ UrlParams.Google%>'「,但它不起作用。 – hsz 2010-12-12 18:31:16