2011-07-08 18 views
0

私のマークアップにはASCXファイルのASP.NETタグが使用されています。ASP.NETタグが変換されていません

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

アイテムは、コントロールクラス内のコードビハインドのプロパティです。

ただし、上記のマークアップはそのままHTMLに表示され、<%= %>文字が含まれています。

これはなぜでしょうか?

答えて

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); 

またはデータバインディング構文を使用:

、コールの背後にあるコードで:

Page.DataBind(); 
+0

それはそれだようええ、見えます。タグ全体がASP.NETによって処理されていたので、私は推測する。しかし、これは本当に私を驚かせました。ありがとう。 –

関連する問題