asp.net
  • hyperlink
  • declarative
  • 2010-08-09 193 views 18 likes 
    18

    que estoy tratando de hacer esto:problema asignando valores declarativos en asp: hipervínculo. error: esto no es scriptlet. va de salida como texto sin formato

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

    Pero estoy recibiendo el error:

    this is not scriptlet. will output as plain text.

    cuando el cursor sobre mis declaraciones declarativas.

    ¿Alguna idea? Gracias.

    Respuesta

    18

    Puede utilizar la sintaxis de enlace de datos <%# %>. Solo asegúrese de que su hipervínculo esté en un control de datos, como una plantilla de elemento ListView, o que llame explícitamente al DataBind() en el control de código subyacente.

    +2

    simplemente por lo que estoy claro, el "#" significa enlace de datos y el "=" significa el valor del lado del servidor, pero no necesariamente de enlace de datos ? –

    +1

    Eso es todo correcto. '<%= %>' denota un literal de cadena y no está relacionado con el enlace de datos. – kbrimington

    22

    No se pueden usar los literales <%= ... %> para establecer las propiedades de los controles del lado del servidor.

    En su lugar, se puede utilizar una (del lado del cliente) <a> normal de la etiqueta, así:

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

    Si GetProfileImage no devuelve las etiquetas HTML, asegúrese de escapar de ella.

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

    todavía puede rellenar un áspid <: HyperLink > si proporciona los ID y runat = "server" propiedades. A continuación, puede establecer cualquier propiedad de HyperLink de código subyacente.

    código ASP:

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

    de código subyacente:

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