Что делает <%:%> в ASP.NET(MVC2)?

Недавно коллега проверила в наборе изменений, где много выражений в форме <% = (...)% > были изменены на <%: (...)% > .

У меня есть смутное воспоминание о том, что я слышал, что <%: делает, но не может вспомнить. Это слишком поздно ночью, чтобы позвонить моему коллеге, а Google и Bing оба не могут найти строку "<%:".

Может кто-нибудь просветить меня, пожалуйста?

Ответ 1

Он HtmlEnкодирует строку, если она еще не была закодирована.

"еще не была закодирована часть", поэтому была введена MvcHtmlString. MVC2 возвращает MvcHtmlString из многих методов HtmlHelper для представления строк, которые не следует перекодировать. Знак <%:% > не может перекодировать.

Смотрите Что такое MvcHtmlString и когда я должен использовать его? для хорошего обсуждения.

Ответ 2

Он автоматически обертывает выводимый вывод в Html.Encode(), чтобы избежать атак сценариев.

Ответ 3

Один из способов запомнить это (любезность: Скотт Гензельман) think = как закрытые ворота. Теперь откройте ворота, повернув его на 90 градусов и увидев его с одного и того же вида. вы увидите: