<% $, <% @, <% =, <% # ... qual è il problema?


211

Ho programmato sia in ASP classico che ASP.NET e vedo diversi tag all'interno del markup per il codice lato server.

Di recente ho trovato un buon blog su MSDN che supera la differenza tra:

  • <%= (percentuale insieme al segno di uguale) e
  • <%# (segno di percentuale e hash / pound / octothorpe)

( <%#viene valutato solo su databind e <%=viene valutato su render), ma vedo anche:

  • <%$ (percentuale e segno del dollaro) e
  • <%@ (segno di percentuale e simbolo).

Credo che <%@carichi cose come assembly e forse <%$carichi cose da file di configurazione? Non sono troppo sicuro

Mi stavo solo chiedendo se qualcuno potesse chiarire tutto questo per me e forse spiegare perché è importante creare così tanti tag diversi che apparentemente hanno uno scopo simile?


72
Sono contento che tu lo chieda, perché è molto difficile google;)
Nicolas Dorier,

8
Impossibile per Google!
jdbosley,

<%#viene spesso utilizzato con eval, ma non è necessario: è possibile utilizzarlo per eseguire qualsiasi codice lato server, a condizione che venga eseguito Page.DataBind()sulla pagina contenente o sulla relativa pagina principale. Sembra che questa sia l'unica opzione nel caso in cui si desideri "iniettare" il codice lato server negli attributi dei controlli lato server come <asp:TextBox, <asp:LinkButtono anche a <input runat="server">.
Gilad Barner,

1
@jdbosley ho cercato su Google "<%=" "<%:""<%@" "<%#"e mi ha mandato qui.
Rudey,

2
@RuudLenders, fortunato per te e buon lavoro Google. Nel 2014 la ricerca di tali tag non ha prodotto risultati di buona qualità.
jdbosley,

Risposte:


296

Immagino sia perché è una risposta accettata, ma provare a modificare / w il collegamento non ha funzionato. ecco il link che ho provato a inserire nella valutazione dell'espressione "<% $": msdn.microsoft.com/en-us/library/d5bd1tad.aspx
John MacIntyre,

6
C'è un nome per tutti questi? Come si chiamano questi come gruppo?
Vippy,

9
@Vippy Si chiamano punture d'ape .
Ian Boyd

1
@Lankymart Il primo utilizzo che posso trovare è settembre 2008
Ian Boyd,

1
@Vippy MS li chiama Blocchi di codice integrati "Punture di api" è un termine non ufficiale.
shiggity,

5

Ne hai coperti 2 (<% # viene valutato solo in databind e <% = viene valutato in rendering) e la risposta per " <%@" è che sono le direttive del compilatore (vale a dire, cose come quelle che avresti messo riga di comando di un compilatore).

Non so di " <%$".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.