2010-04-20 8 views

Odpowiedz

41

składnia dwukropek oznacza zostaniesz automatycznie kodowane html: http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx

nie mogli po prostu html kodować wszystkie istniejące <%= bloki, ponieważ rzeczy, które są już poprawnie zakodowane (co jest nadzieją większość projektów z tam) wyglądałoby dziwnie.

+0

+1 za świetną lekturę, którą połączyłeś. –

+0

dzięki, @bears. blog phil's jest koniecznością - zwłaszcza jeśli pracujesz z ASP.NET MVC –

+2

Uwielbiam odniesienie do dwukropka, który jest równy, ale oglądany z boku :-) –

5

ASP .NET 4 wprowadził <%: składnię, która zakodowała dane wyjściowe przed wyświetleniem go na ekranie. ASP MVC już to kodowało, ale aby być bardziej zrozumiałym, zaczęli używać także składni, aby jasno powiedzieć, że kiedykolwiek zobaczysz <%: możesz być pewien, że dane wyjściowe będą poprawnie zakodowane.

+2

Kluczowym słowem, którego tu brakuje, jest "HTML" jak w "zakodowanym HTML" - nie tylko "zakodowanym". –

+0

Jestem prawie pewien, że <%: składnia została wprowadzona przed .net 4. – Losbear

+0

To był .net 4: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt -syntax-for-html-kodowanie-output-in-asp-net-4-and-asp-net-mvc-2.aspx –

12

<%= służy do zapisu do bufora wyjściowego.

<%: służy do zapisu do bufora wyjściowego, po HTML Kodowanie zawartości ... O ile interfejs IHtmlString nie został zaimplementowany na zwróconym obiekcie.

Scott Guthrie ma doskonałą post na ten temat: 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

Jeśli wyjście zostało już uciekł, podwójne kodowanie można zapobiec poprzez wdrożenie IHtmlString interfejsu na zwróconego przedmiotu. http://msdn.microsoft.com/en-us/library/system.web.ihtmlstring.aspx

Powiązane problemy