ASP.NET标签未被转换

时间:2011-07-08 21:59:42

标签: asp.net webusercontrol

我在我的标记中使用ASP.NET标记和ASCX文件。

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

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

但是,上面的标记正在呈现给HTML不变,包括<%= %>个字符。

有谁知道为什么会这样?

1 个答案:

答案 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();