2010-04-20 11 views

risposta

41

la sintassi del colon significa che sarete HTML codificato automaticamente: http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx

Potevano non solo html codificare tutte le esistenti <%= blocchi, perché le cose che sono già adeguatamente codificati (che si spera la maggior parte dei progetti fuori lì) sembrerebbe strano.

+0

+1 per la buona lettura che hai collegato. –

+0

grazie, @bears. Il blog di phil è una lettura obbligata - specialmente se stai lavorando con ASP.NET MVC –

+2

Amo il riferimento ai due punti essendo uguale ma visto di lato :-) –

5

ASP .NET 4 ha introdotto la sintassi <%: che codifica l'output prima di renderlo sullo schermo. ASP MVC stava già codificandolo, ma per essere più espliciti hanno iniziato a usare anche la sintassi per chiarire che ogni volta che vedi lo <%: puoi essere sicuro che l'output sarà codificato correttamente.

+2

La parola chiave che ti manca è "HTML", come in "HTML codificato" - non solo "codificato". –

+0

Sono abbastanza sicuro che <%: la sintassi è stata introdotta prima .net 4. – Losbear

+0

Era .net 4: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt -syntax-per-html-codifica-output-in-asp-net-4-e-asp-net-mvc-2.aspx –

12

<%= viene utilizzato per la scrittura nel buffer di uscita.

<%: viene utilizzato per la scrittura al buffer di uscita, dopo HTML codifica il contenuto ... A meno che il IHtmlString interfaccia è stata implementata per l'oggetto restituito.

Scott Guthrie ha un ottimo post su questo argomento: 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

Se l'uscita è già stato sfuggito, doppia codifica può essere prevenuta con l'attuazione del IHtmlString interfaccia sull'oggetto restituito. http://msdn.microsoft.com/en-us/library/system.web.ihtmlstring.aspx

Problemi correlati