我在标记一个 ASCX 文件中使用 ASP.NET 标记。
<a id="MyId" runat="server" href="page.aspx?id=<%= Item.Id %>">View Item</a>
Item 是我的控件类中的一个属性,位于代码后面。
但是,上面的标记被呈现为 HTML 不变,包括<%= %>
字符。
有谁知道为什么会这样?
我在标记一个 ASCX 文件中使用 ASP.NET 标记。
<a id="MyId" runat="server" href="page.aspx?id=<%= Item.Id %>">View Item</a>
Item 是我的控件类中的一个属性,位于代码后面。
但是,上面的标记被呈现为 HTML 不变,包括<%= %>
字符。
有谁知道为什么会这样?
尝试runat="server"
从锚点中删除属性,如下所示:
<a href="<%= string.Format("{0}?id={1}", ResolveUrl("~/page.aspx"), item.Id) %>">
View Item
</a>
或使用超链接:
<asp:HyperLink ID="link" runat="server" NavigateUrl="~/page.aspx?id={0}">
View Item
</asp:HyperLink>
并在后面的代码中设置值:
link.NavigateUrl = string.Format(link.NavigateUrl, item.Id);
或使用数据绑定语法:
<asp:HyperLink ID="link" runat="server" NavigateUrl='<%# string.Format("~/page.aspx?id={0}", item.Id) %>'>
View Item
</asp:HyperLink>
并在调用背后的代码中:
Page.DataBind();