MVC2 чем отличается <%: тег от <% = - PullRequest
3 голосов
/ 12 октября 2010

В чем разница между <%: и <% =? </p>

Ответы [ 2 ]

5 голосов
/ 12 октября 2010

Разница в том, что <%: автоматически HTML кодирует строку, тогда как <% = нет. </p>

Еще до выхода MVC2 для кодирования HTML-строки вам пришлось использовать метод Html.Encode () внутри представления.

<%= Html.Encode(Model.MyString) %>

Однако в MVC2 они добавили тег <%:, который выводит то же самое, но обрабатывает кодировку HTML для вас. </p>

<%: Model.MyString %>

Как правило, вы должны всегда выводить свои строки, используя тег <%: </p>

Оформление заказа Блог Скотта Гу для получения дополнительной информации по этому вопросу.

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

3 голосов
/ 12 октября 2010

По сути, тег <%: кодирует любые строки, которые еще не были закодированы. Итак:

<%: Model.Title %>

... совпадает с:

<%= Server.HtmlEncode(Model.Title ) %>

Но если вы случайно используете тег там, где это не нужно:

<%: Html.TextBoxFor(Model => Model.Title) %>

... это будет так же, как если бы вы этого не сделали:

<%= Html.TextBoxFor(Model => Model.Title) %>

См. 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 для полного объяснения.

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