none
Unterschied zwischen <%= %> und <%# %> und <%: %> RRS feed

  • Frage

  • Hallo,

    ich bin gerade dabei eine Website zu entwickeln und hatte mit der Übergabe der ClientIDs von Controls an JavaScript-Funktionen so meine Schwierigkeiten gehabt. Was mir aufgefallen ist, dass hierbei das wunderbar funktioniert:

    <input type="button" id="btnFoo" onclick="DoSomething('<%= Control.ClientID %>')" />

    Sobald ich diesem Button allerdings das Attribut runat="server" hinzufüge, oder es sich um ein ASP-Steuerelement handelt funktioniert das nicht mehr. Ich habe mein Problem zwar auf eine andere Weise gelöst, allerdings habe ich das Gefühl, dass ich diese ganzen Ausdrücke nicht verstehe. Da ich nicht weiß wie man die genau nennt, ist auch das Suchen danach schwer. Leider habe ich also nicht die Informationen gefunden die ich gesucht habe.

    Wie nennt man diese Ausdrücke genau und was ist der Unterschied. Es wäre fein, wenn ihr mir Informationen und Links zum Thema geben könntet.

    <%= %>
    
    <%: %>
    
    <%# %> 
    
    <%# Eval() %>
    
    <%# Bind() %>

     

    Vielen Dank für eure Hilfe

    Donnerstag, 7. April 2011 22:16

Antworten

  • Hi,

    Wie nennt man diese Ausdrücke genau und was ist der Unterschied. Es wäre fein, wenn ihr mir Informationen und Links zum Thema geben könntet.

    <%= %>
    
    <%: %>
    
    <%# %> 
    
    <%# Eval() %>
    
    <%# Bind() %>

    <%= "Hallo Welt" %> enspricht <% Response.Write( "Hallo Welt" ) %> und ist lediglich eine kürzerere Schreibweise.

    <%# ... %> ist ein Datenbindungsausdruck.

    <%$ ... %> ist ein Ressourcenausduck.

    <%@ ... %> ist eine Seitendirektive.

    <%: ... %> ist neu in ASP.NET 4 und macht eigentlich das gleiche wie <%= ... %>, der Inhalt wird aber per HtmlEncode aufbereitet (Details)

    <%-- ... --%> sind serverseitige Kommentare.

    Zu Eval und Bind lies mal hier.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 8. April 2011 07:02
    Moderator

Alle Antworten

  • Hi,

    Wie nennt man diese Ausdrücke genau und was ist der Unterschied. Es wäre fein, wenn ihr mir Informationen und Links zum Thema geben könntet.

    <%= %>
    
    <%: %>
    
    <%# %> 
    
    <%# Eval() %>
    
    <%# Bind() %>

    <%= "Hallo Welt" %> enspricht <% Response.Write( "Hallo Welt" ) %> und ist lediglich eine kürzerere Schreibweise.

    <%# ... %> ist ein Datenbindungsausdruck.

    <%$ ... %> ist ein Ressourcenausduck.

    <%@ ... %> ist eine Seitendirektive.

    <%: ... %> ist neu in ASP.NET 4 und macht eigentlich das gleiche wie <%= ... %>, der Inhalt wird aber per HtmlEncode aufbereitet (Details)

    <%-- ... --%> sind serverseitige Kommentare.

    Zu Eval und Bind lies mal hier.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 8. April 2011 07:02
    Moderator
  • Super, danke für die Links. Das hilft mir sicherlich weiter :)

    EDIT: Also <%= ... %> gibt immer nur einen String zurück. Das bedeutet ich kann hierbei nur auf Eigenschaften oder Methoden zugreifen, die eine Zeichenkette zurückgeben? Und warum funktioniert <%= ... %> bei Steuerelementen, die nicht das Attribut runat="server" verwenden einwandfrei, aber bei Server-seitigen Steuerelementen nicht mehr?

    Samstag, 9. April 2011 19:42