我在我的标记中使用ASP.NET标记和ASCX文件。
<a id="MyId" runat="server" href="page.aspx?id=<%= Item.Id %>">View Item</a>
Item是我控件类中的一个属性,代码在后面。
但是,上面的标记正在呈现给HTML不变,包括<%= %>
个字符。
有谁知道为什么会这样?
答案 0 :(得分:2)
尝试从锚中删除runat="server"
属性,如下所示:
<a href="<%= string.Format("{0}?id={1}", ResolveUrl("~/page.aspx"), item.Id) %>">
View Item
</a>
或使用HyperLink:
<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();