Что означает «:» в <%: и в чем разница с <% =? - PullRequest
8 голосов
/ 25 августа 2010

В ASP.NET MVC 2 <%: тег был введен для замены <%= для Html помощников.Но что это значит и в чем отличие от предыдущего?Когда я буду использовать <%= и когда <%:?

Спасибо

Ответы [ 3 ]

14 голосов
/ 25 августа 2010

В ASP.NET 4 синтаксис <%: xyz %> будет действовать так же, как <%= Server.HtmlEncode(xyz) %> в предыдущих версиях. Это просто ярлык, потому что он используется так часто.

Как говорит Ричард ниже, он также может определить, не нужно ли кодировать строку, основываясь на том, реализует ли он интерфейс IHtmlString.

8 голосов
/ 25 августа 2010

IIRC, <%: автоматически предоставляет кодировку HTML, поэтому вам не нужно делать это самостоятельно.

С Сообщение Скотта Гатри :

В ASP.NET 4 мы вводим новый синтаксис выражений кода (<%: %>), который отображает вывод, как это делают блоки <%= %>, но который также автоматически кодирует его HTML, прежде чем сделать это.

Прочитайтесообщение в блоге для более подробной информации.

3 голосов
/ 25 августа 2010

<% = Вводит значение напрямую, тогда как <%: автоматически экранирует все страшные специальные символы для вас.</p>

Другими словами,

<%: myString %>

совпадает с

<%= Server.HtmlEncode(myString) %>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...