<asp:Repeater ID="rptrCategories" runat="server">
<ItemTemplate>
<li>
<a href='~/category/<%# Eval("NormalizedProductCategory") %>' runat="server"><%# Eval("ProductCategoryName")%></a></li>
</ItemTemplate>
</asp:Repeater>
当href部件由服务器呈现时,它在客户端部分中显示如下所示。第一个评估部分
<a href="../../category/%3C%25#%20Eval(%22NormalizedProductCategory%22)%20%25%3E">Shoes</a>
这里有什么问题?
答案 0 :(得分:3)
您可以执行以下操作:
<asp:HyperLink ID="HyperLink" runat=server NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "NormalizedProductCategory", "~/category/{0}") %>'>Name</asp:HyperLink>
答案 1 :(得分:1)
代码块并不总是在runat =“server”控件中工作。
如果你想这样做,删除runat =“server”或者使用它的ASP.NET对应代码将所有代码移到代码隐藏
<asp:HyperLink ID="HyperLink" runat=server />
ItemDataBound中的代码:
HyperLink.NavigateUrl = this.ResolveUrl("~/category/" + dataItem.NormalizedProductCategory);
答案 2 :(得分:1)
您可以将代码更改为此
<a id="A1" href='<%= ResolveClientUrl("~") %>category/<%#Eval("NormalizedProductCategory") %>'><%# Eval("ProductCategoryName")%></a>
请注意,您必须删除此{/ p>的runat="server"