.net 评估未在href标记中呈现

.net 评估未在href标记中呈现,.net,.net,当服务器呈现href部分时,它会显示在客户端部分,如下所示。第一评估部分 <asp:Repeater ID="rptrCategories" runat="server"> <ItemTemplate> <li> <a href='~/category/<%# Eval("Nor

当服务器呈现href部分时,它会显示在客户端部分,如下所示。第一评估部分

                <asp:Repeater ID="rptrCategories" runat="server">
                    <ItemTemplate>
                         <li>
                         <a href='~/category/<%# Eval("NormalizedProductCategory") %>' runat="server"><%# Eval("ProductCategoryName")%></a></li>                   
                    </ItemTemplate>
                </asp:Repeater>


这里出了什么问题?

您可以执行以下操作:

<a href="../../category/%3C%25#%20Eval(%22NormalizedProductCategory%22)%20%25%3E">Shoes</a>
名称

您可以执行以下操作:

<a href="../../category/%3C%25#%20Eval(%22NormalizedProductCategory%22)%20%25%3E">Shoes</a>
名称

代码块并不总是在runat=“server”控件中工作

如果要执行此操作,请删除runat=“server”或使用其对应的ASP.NET将所有代码移到代码后面

<asp:HyperLink ID="HyperLink" runat=server NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "NormalizedProductCategory", "~/category/{0}") %>'>Name</asp:HyperLink>

代码块并不总是在runat=“server”控件中工作

如果要执行此操作,请删除runat=“server”或使用其对应的ASP.NET将所有代码移到代码后面

<asp:HyperLink ID="HyperLink" runat=server NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "NormalizedProductCategory", "~/category/{0}") %>'>Name</asp:HyperLink>

您可以将代码更改为

HyperLink.NavigateUrl = this.ResolveUrl("~/category/" + dataItem.NormalizedProductCategory);


请注意,您必须删除
runat=“server”
,为此

您可以将代码更改为

HyperLink.NavigateUrl = this.ResolveUrl("~/category/" + dataItem.NormalizedProductCategory);


请注意,您必须删除
runat=“server”
,这怎么可能是答案呢。这行得通吗?我认为代码块在runat=“server”控件上不起作用。或者这仅仅局限于页面头部的代码块?这怎么可能是答案呢。这行得通吗?我认为代码块在runat=“server”控件上不起作用。还是只限于页面头部的代码块?