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 に答える