.NET против HTML-сущностей: выполняется ли второе декодирование? - PullRequest
1 голос
/ 27 января 2012

Почему, если я написал на странице .aspx (в .NET 3.5):

<%="W&auml;hlen Sie bitte"%>

правильно печатается на моей html-странице:

W&auml;hlen Sie bitte

но если я напишу на странице .aspx.cs что-то вроде:

mySelectBox.Items.Add(new ListItem("W&auml;hlen Sie bitte", ""));

(это та же самая строка), которая печатается как опция в некорректно выбранном HTML:

W&amp;auml;hlen Sie bitte

Это делает "декодирование" моей строки. Зачем? И как я могу это исправить?

Ответы [ 2 ]

3 голосов
/ 27 января 2012

Ваш первый синтаксис предназначен для вывода HTML, который вы передаете буквально, так что любой HTML, который вы можете включить, получает отрендеренный вместо кодированного.хотя буквальный текст, который вы хотите отобразить;он делает кодировку HTML для вас.Вы перекодировали это значение.

2 голосов
/ 27 января 2012

ASP.NET уже контролирует HTML, кодирует вывод, так что вам не нужно делать это снова.

Просто:

mySelectBox.Items.Add(new ListItem("Wählen Sie bitte", ""));
...