36 votes

<%: Et <% = sont-ils la même chose que les blocs de code (expression) intégrés

Après avoir commencé avec MVC 2, je remarque que dans leur modèle de démarrage, ils utilisent

 <%: Html.ActionLink("Home", "Index", "Home")%>
 

et j'étais sûr que dans MVC 1 c'était

 <%= Html.ActionLink("Home", "Index", "Home")%>
 

S'agit-il de la même chose? Si oui, pourquoi le passage du signe égal au deux-points.

42voto

Rob Fonseca-Ensor Points 11697

la syntaxe deux-points signifie que vous serez encodé en HTML automatiquement: http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx

Ils ne pouvaient pas simplement encoder en HTML tous les blocs <%= existants, car les choses qui sont déjà correctement encodées (ce qui est, espérons-le, la plupart des projets disponibles) sembleraient étranges.

12voto

gahooa Points 38006

<%= est utilisé pour l'écriture de la mémoire tampon de sortie.

<%: est utilisé pour l'écriture de la mémoire tampon de sortie, après le Codage HTML du contenu... à Moins que l' IHtmlString Interface a été mise en œuvre sur l'objet retourné.

Scott Guthrie a un excellent post sur ce sujet: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx

Si la sortie a déjà été échappé, double codage peuvent être évités par la mise en œuvre de l' IHtmlString Interface de l'objet retourné. http://msdn.microsoft.com/en-us/library/system.web.ihtmlstring.aspx

5voto

Matthew Manela Points 9610

ASP .NET 4 a introduit le <%: syntaxe qui code pour la sortie avant de le rendre à l'écran. ASP MVC était déjà codant pour cela, mais pour être plus explicite, ils ont commencé à utiliser la syntaxe de préciser que chaque fois que vous voyez les <%: vous pouvez être sûr que la sortie sera codé correctement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X