2010-09-03 7 views
3

Possible en double:
ASP.NET “special” tagsDifférence entre <%: et <% =

J'espère que ce n'est pas trop d'une question de débutant. Je semble toujours utiliser la syntaxe correcte, mais je ne comprends pas vraiment pourquoi j'utilise le <%: et <% = dans ASP.NET, et j'espérais que quelqu'un pourrait clarifier pour moi. Je found this article which explains <%= and <%#, mais n'a pas été en mesure de trouver quoi que ce soit dans Google sur <%:.

Des exemples de là où je l'ai utilisé les différentes syntaxe:

<div> 
    <%: Html.LabelFor(model => model.Type) %> 
    <%: Html.TextBoxFor(model => model.Type)%> 
</div> 

et

<div id="header-menu"> 
    <ul> 
    <li><%= Html.ActionLink("Home", "", "Home")%></li> 
    </ul> 
</div> 

Merci pour toute précision.

Réponse possible (par ChrisF):ASP.NET "special" tags

+0

double possible de [ASP.NET balises "spéciales"] (http://stackoverflow.com/questions/649428/asp-net-special-tags) - ne pas directement poser cette question, mais la réponse acceptée inclut cette nouvelle étiquette. – ChrisF

+1

@ChrisF - Merci de le signaler. Je n'ai pas trouvé ça quand je cherchais ici. Je vais éditer mon post pour pointer là et les gens peuvent se sentir libres de le fermer s'ils le veulent. (Si quelqu'un a quelque chose à ajouter ici, ce serait génial aussi.) Merci encore! – JasCav

Répondre

4
<%: "some string" %> 

est égal à:

<%= Html.Encode("some string") %> 
+0

wow, cool, je ne savais pas cela. –

+1

oui, mais '<%: someMvcHtmlString%>' ne sera pas le même que '<% = Html.Encode (someMvcHtmlString)%>' mais à la place, Asp.net MVC reconnaîtra le 'MvcHtmlString' et évitera le double encodage. En fait, 'IHtmlString' en général. –

+0

@lasseespeholt, vous avez raison. Voici un autre article pour la nouvelle syntaxe de sortie de codage Html: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp -net-4-et-asp-net-mvc-2.aspx –

3

<%: est une nouvelle façon de automatiquement HTML encoder vos données. Article de Haacked à ce sujet. Nouveau sur .NET 4.0.

+0

Il est important de noter que vous désactivez le codage HTML en lui transmettant un 'IHtmlString' (c'est-à-dire quelque chose qui dit qu'il sait comment créer un code HTML valide). Ils disent que «<%: %>» devrait entièrement remplacer «<%= %>». – bdukes

+0

Bon ajout !! –

Questions connexes