Почему html.encode не возвращает HtmlString - PullRequest
0 голосов
/ 06 января 2011

Я проходил и конвертировал свой проект, чтобы использовать <%: вместо <%= синтаксиса, и меня раздражало, что я также должен удалить Html.Encode(zoozle) повсюду.Если его оставить на месте, zoozle получит двойное кодирование.

Это заставляет меня задуматься, почему Html.Encode не возвращает HtmlString, так что он не будет снова закодирован <%:

1 Ответ

1 голос
/ 06 января 2011

HtmlString - это новый класс, представленный в .NET 4.0 framework. Метод HtmlEncode находится в классе HttpServerUtility, который существует с .NET 1.1. Microsoft, вероятно, не изменила его, чтобы не нарушать все предыдущие реализации, в которых этот метод возвращал строку. Они не могут перегрузить его, потому что вы не можете перегружать только тип возвращаемого значения метода.

У Фила Хаакеда есть регулярное выражение, которое можно использовать для замены всех экземпляров Html.Encode. http://haacked.com/archive/2010/04/29/replacing-html-encode.aspx

...