problema assegnando valori dichiarativi in asp: hyperlink. errore: questo non è scriptlet. Uscita volontà come testo normale
-
27-09-2019 - |
Domanda
sto cercando di fare questo:
<asp:HyperLink NavigateUrl='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>' runat="server" Text='<%= GetProfileImage(WebContext.CurrentUser.AccountId) %>'></asp:HyperLink>
Ma che ottiene l'errore:
questo non è scriptlet. uscita volontà come testo semplice.
quando il mouse sopra le mie affermazioni dichiarative.
Tutte le idee? Grazie.
Soluzione
È possibile utilizzare i dati di legame <%# %>
sintassi. Basta essere sicuri che il vostro collegamento ipertestuale o è in un controllo databound, come ad esempio un modello di elemento ListView, o che si chiama in modo esplicito DataBind()
sul controllo da code-behind.
Altri suggerimenti
Non è possibile utilizzare letterali <%= ... %>
per immobili serie di controlli lato server.
Al contrario, è possibile utilizzare un normale tag <a>
(lato client), in questo modo:
<a href="<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>"><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>
Se GetProfileImage
non restituisce tag HTML, assicurarsi di sfuggirgli.
È ancora possibile compilare un
Codice ASP:
<asp:HyperLink ID="myLink" runat="server"/>
Codice-behind:
public void Page_Init()
{
myLink.NavigateURL = WebContext.RootUrl + WebContext.CurrentUser.UserName;
myLink.Text = GetProfileImage(WebContext.CurrentUser.AccountId);
}
<a href='<%= WebContext.RootUrl %><%= WebContext.CurrentUser.UserName %>'><%= GetProfileImage(WebContext.CurrentUser.AccountId) %></a>