Действительно, синтаксис <% some code %>
в ASP.NET переводится довольно просто, чтобы «выполнить этот код».
Синтаксис <%= some code %>
в ASP.NET переводится как Response.Write(some code)
.
Исходя из этого, становится понятно, почему <% Html.Encode(...); %>
ничего не возвращает. Он кодирует ваш текст, но никто не пишет его в ответ! С <%= Html.Encode(...) %>
компилятор ASP.NET превращает его в Response.Write(Html.Encode(...))
, который, очевидно, запишет закодированный текст в ответ.