problema assegnando valori dichiarativi in ​​asp: hyperlink. errore: questo non è scriptlet. Uscita volontà come testo normale

StackOverflow https://stackoverflow.com/questions/3441841

  •  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.

È stato utile?

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 se si fornisce il ID e runat = "server" proprietà. È quindi possibile impostare qualsiasi proprietà del collegamento ipertestuale dal code-behind.

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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top