В чем разница между <%: и <% = в ASP.NET MVC?

Я не могу найти эту информацию нигде. Вероятно, потому, что Google игнорирует ключевые слова. Есть ли разница между использованием <%: и <%= на вашей странице aspx? Они кажутся взаимозаменяемыми.

Ответ 1

<%: %> новая вещь в ASP.NET MVC 2. Это то же самое, что и <%= Html.Encode("Text") %>. Рекомендуется всегда использовать <%: %>, если у вас нет определенной причины не делать этого (например, вы обрабатываете данные из какого-либо файла или базы данных, которые уже были закодированы).

Ответ 2

Разница заключается в следующем:

<%= "my <text>" %> выводит my <text>, что является неправильным HTML

<%: "my <text>" %> выводит my &lt;text&gt;, что лучше

Подробнее здесь

Ответ 3

@ntcolonel прямо на деньги. Кроме того, для случаев, когда ваши данные уже закодированы, предоставьте это, используя что-либо, реализующее IHtmlString. Это предотвращает двойное кодирование и позволяет всегда использовать <%: %>.

Я считаю, что магазины ASP.NET 4 должны стремиться к обеспечению политики <%:% > политикой.

Кроме того, новый синтаксис для ASP.NET 4 вообще; не обязательно просто MVC, что является отличной новостью для разработчиков WebForms.