0

我在标记一个 ASCX 文件中使用 ASP.NET 标记。

<a id="MyId" runat="server" href="page.aspx?id=<%= Item.Id %>">View Item</a>

Item 是我的控件类中的一个属性,位于代码后面。

但是,上面的标记被呈现为 HTML 不变,包括<%= %>字符。

有谁知道为什么会这样?

4

1 回答 1

2

尝试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();
于 2011-07-08T22:01:39.400 回答