2010-03-06 34 views
0

在ASP.NET頁面的代碼隱藏我有這樣的方法:在asp:Hyperlink的NavigateUrl中嵌入代碼。我究竟做錯了什麼?

public string TestFunc() 
{ 
    return "http://www.blabla.net"; 
} 

而在此標記:

<%= TestFunc() %> 

如果我運行的頁面我看「http://www.blabla.net」對案文頁面,並在調試器中輸入TestFunc - 全部按預期進行。

如果我把這個超鏈接在同一aspx頁面上...

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl='<%= TestFunc() %>'>Proceed... 
</asp:HyperLink> 

...我不調試器進入TestFunc和HREF的生成的HTML包含嵌入代碼的簡單文字: href="%3C%=%20TestFunc%28%29%20%%3E"

我在做什麼錯在這裏?我已經嘗試過愚蠢的試驗和錯誤:用#替代=,省略=,用雙引號替換單引號'。但是這一切都沒有幫助。現在我很難過。

感謝您的幫助!

回答

1

您可以在支持模板的容器中使用「<%%>」構造(例如,帶有綁定,評估組合的GridView)。簡單的使用屬性會導致對錶達式進行編碼並顯示「原樣」。

+0

但是爲什麼我的問題沒有HyperLink的第一個簡單的例子工作?它不在任何asp容器中。 – Slauma 2010-03-06 15:55:32

+0

這種情況也是允許的。 – sashaeve 2010-03-06 15:58:35

+0

好的,我明白了。控件屬性(容器模板之外)是問題。 – Slauma 2010-03-06 16:01:53