嵌入式代码在asp:Hyperlink的NavigateUrl中。我究竟做错了什么?

时间:2010-03-06 15:40:50

标签: asp.net hyperlink

在ASP.NET页面的代码隐藏中,我有这个方法:

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 个答案:

答案 0 :(得分:1)

您可以使用“&lt; %%&gt;”容器内的构造支持模板(例如,结合了Bind,Eval的GridView)。对属性的简单使用将导致对表达式进行编码,并将“按原样”显示。