Помощники HTML создают HTML, который, как правило, будет выводиться необработанным с <%= %>
.Если вы использовали <%: %>
для экранирования HTML от вывода помощника HTML, вы увидите исходный текст HTML, который он создал на странице, в виде текста (например, буквально <input name="foo" value="bar">
на экране), что, вероятно, не то, что вам нужно.
В целях безопасности помощник может HTML-экранировать любой текстовый контент внутри них.Да, если вы напишите пользовательский помощник HTML и поймете его неправильно - забыв об HTML-кодировании строк, ваш помощник вставит в вывод текстовое содержимое или значения атрибутов - у вас будут дыры в безопасности.Вам нужно знать, что вы делаете, пытаясь написать HTML-помощник.
Microsoft, к сожалению, по-видимому, этого не делает, поскольку самый первый пример в их учебнике полностью терпит неудачу:
return String.Format("<label for='{0}'>{1}</label>", target, text);
Упс.Надеюсь, что эти идентификаторы и текстовые строки не были получены из ненадежных данных!
[почему веб-учебники всегда так ужасно ужасны при выходе из проблем?]