2013-04-10 20 views
1

我試圖使用這種編碼(ASP.NET內嵌表達式)做這個簡單的任務:預計不會ASP.NET內聯表達式的結果

其中:

瓦爾是一個靜態類包含靜態字符串變量。

代碼:

<asp:HyperLink ID="anyHyperLink" runat="server" /> 
<% anyHyperLink.NavigateUrl = Vars.aDirectoryString; anyHyperLink.Text = "Some Text"; %> 

輸出端的標記表示,該內嵌表達式代碼沒有效果!

謝謝..

回答

2

你必須把控制上面那行,不能低於它。引擎從上到下讀取,所以當它到達你的代碼時,HTML已經被渲染用於鏈接。

或者你可以把它放在Page_Load或類似的東西的代碼隱藏,而不是標記。

+0

啊哈謝謝,你說得對,我可以把代碼放在更好的地方,但我只是通過這段代碼改進我的編碼技巧,再次感謝 – 2013-04-10 23:51:30

+0

爲什麼我不能寫:'runat =「server」/>? – 2013-04-10 23:55:23

+0

不確定爲什麼不 - 這只是ASP.NET WebForms的怪異行爲之一(我停止使用WebForms支持MVC的一百個原因之一)。你也許可以做一個'<%# %>',但是那時控制器必須是數據綁定的東西。 – 2013-04-11 01:14:41