<%:%> скобки для кодировки HTML в ASP.NET 4.0 - PullRequest
5 голосов
/ 24 мая 2010

Случайно я обнаружил в этом посте о новой функции в ASP.NET 4.0: выражения, заключенные в эти новые скобки <%: Content %>, должны отображаться в кодировке HTML.

Я пробовал это в пределах метки привязки к данным в FormView следующим образом:

<asp:Label ID="MyLabel" runat="server" Text='<%: Eval("MyTextProperty") %>' />

Но это не работает: свойство text содержит теги скрипта (для тестирования), но вывод пуст. Используя традиционный способ работы:

<asp:Label ID="MyLabel" runat="server"
    Text='<%# HttpUtility.HtmlEncode(Eval("MyTextProperty")) %>' />

Что я делаю не так?

(На заметку: я слишком глуп, чтобы найти какую-либо информацию: Google отказывается искать эту вещь. Онлайн-справка VS2010 по MSDN предлагает много обращений, но ничего не связано с моим поиском. Поиск Stackoverflow тоже. И я не знаю, как эти «вещи» (я имею в виду квадратные скобки) официально называются для лучшего поиска.)

Любая информация и дополнительные ссылки и ресурсы приветствуются!

Заранее спасибо!

Ответы [ 2 ]

8 голосов
/ 24 мая 2010

Вы путаете выражения привязки данных , которые имеют синтаксис <%#%> и используются с EvalBind) с тегами вывода ответа (<%=%> и <%:%>) которые нельзя использовать с Eval.

3 голосов
/ 03 апреля 2014

Используйте синтаксис привязки данных в кодировке HTML <%#: %>.(Обратите внимание на «:» после «#»).Например:

Text='<%#: Eval("PropertyToEval") %>'
...