вы неправильно поняли тег <%:
.Тег <%:
кодирует только обычный string
, а не HtmlString
, как возвращается Html.TextBox
helper.
Пример:
<%: Html.TextBox("TestText", "<Test>") %>
<%= Html.TextBox("TestText2", "<Test>") %>
Оба оператора возвращаюттакое же текстовое значение, как указано в вопросе.Теперь рассмотрим этот оператор.
<%: "<Test>" %>
Этот оператор кодирует, поскольку теперь передается обычная строка.
РЕДАКТИРОВАТЬ:
После проверки исходный код из MVC, HttpUtility.HtmlAttributeEncode вызывается под капотом.Он минимально преобразует строку в строку в кодировке HTML.