asp:HyperLink NavigationUrl属性的标记内变量?

时间:2010-03-09 00:32:57

标签: asp.net

我是ASP.NET的新手,无法弄清楚如何实现这一目标......

我的代码(需要修复):

<asp:HyperLink runat="server"
          NavigateUrl="~/EditReport.aspx?featureId=<%= featureId %>" />

featureId在支持代码中定义为整数。我想href就像......

  /EditReport.aspx?featureId=2224

...而是我得到......

  /EditReport.aspx?featureId=<%= featureId %>

2 个答案:

答案 0 :(得分:1)

您可以在不使用HyperLink控件的情况下轻松完成此操作:

<a href='<%=ResolveUrl("~/EditReport.aspx?featureId=" + featureId) %>'>Link</a>

答案 1 :(得分:0)

大多数asp.net开发人员曾经遇到过这种情况。这是我最喜欢的解决方案,因为它适用于任何服务器控件:

http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx

有效地,您将这个人的精彩小自定义ASP.NET表达式生成器添加到您的项目中,然后将控件重写为如下所示:

<asp:HyperLink runat="server"
     NavigateUrl='<%$ CODE: String.Format("~/EditReport.aspx?featureId={0}", featureId) %>' />

他解释说它比<%# %>方法更清晰,因为没有涉及ViewState。还要注意使用单引号,它允许在属性中使用双引号。