ASP.NET объекты ломает JavaScript в коде позади - PullRequest
0 голосов
/ 28 ноября 2010

Я делаю следующее в codebhind с элементом управления HyperLink:

hlNonTerminal.Attributes ["onclick"] = string.Format ("highlightTokenUsage ('{0}');", nonTerminal);

но символ 'заменяется на asp.net, и браузер получает:

CITY

Как я могу отключить или обойти это? Это происходит внутри пользовательского элемента управления, но на странице, которая содержит его, ValidateRequest = "false".

1 Ответ

0 голосов
/ 05 января 2011

Механизм кодирования (вероятно) реализован прямо в базовом методе Render класса AttributeCollection, поэтому переопределение серверного элемента управления и изменение логики рендеринга изменит это.Тем не менее, я настоятельно советую вам не делать этого, поскольку текущая реализация работает нормально.

Ссылка <a id="..." onclick="highlightTokenUsage(&#39;CITY&#39;);">CITY</a>, которую вы показали нам, является абсолютно действительной.Код &#39; декодируется в символ 'перед вызовом метода highlightTokenUsage, поэтому он не приносит вам никакого вреда.

Кстати, обратите внимание, что этот вид манипулирования атрибутами через код позади (на самом деле, смешиваниекод HTML и JavaScript) против " ненавязчивый Javascript ".

...