2010-08-09 17 views
18

düz metin olarak çıktı edecektir: hatayı, asp: hiperlink'te bildirim değerleri atama sorunu. hata: Bu komut dosyası değil. Bunu yapmak için çalışıyorum

<asp:HyperLink NavigateUrl='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>' runat="server" Text='<%= GetProfileImage(WebContext.CurrentUser.AccountId) %>'></asp:HyperLink> 

Ama alıyorum:

this is not scriptlet. will output as plain text.

benim bildirim açıklamalardan duyduğu Ben fare.

Herhangi bir fikrin var mı? Teşekkürler.

cevap

18

Sen sözdizimi <%# %> bağlama verileri kullanabilirsiniz. Kök dizininin, bir ListView öğesi şablonu gibi bir veri denetimi denetiminde olduğundan emin olun, aksi halde denetimden arka planda DataBind() numaralı telefonu arayın.

+2

sadece bu yüzden, "#" veri sınırlama açık demektir am ve "=" veri sınırlama sunucu tarafı değer anlamına gelir ama mutlaka ? –

+1

Bu doğru hakkında. '<%= %>', bir dizgi değişmezini belirtir ve veri bağlama ile ilgisi yoktur. – kbrimington

22

Sen sunucu tarafı kontrollerin özellikleri ayarlamak için <%= ... %> değişmezleri kullanamaz.

Bunun yerine, bu sanki normal (istemci tarafı) <a> etiketi kullanabilirsiniz: HTML etiketleri döndürmek ondan kaçmak için emin yapmaz

<a href="<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>"><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a> 

GetProfileImage edin.

2
<a href='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>'><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a> 
9

Hala bir < asp doldurabilirsiniz: HyperLink > Eğer kimliği ve runat = "server" özellikleri sağlar eğer. HyperLink'in herhangi bir özelliğini kod arkasından ayarlayabilirsiniz.

ASP Kod:

<asp:HyperLink ID="myLink" runat="server"/> 

kod arkadaki:

public void Page_Init() 
{ 
    myLink.NavigateURL = WebContext.RootUrl + WebContext.CurrentUser.UserName; 
    myLink.Text = GetProfileImage(WebContext.CurrentUser.AccountId); 
} 
İlgili konular