символы как: 'или "в коде скрипта заголовка становятся:' или" - PullRequest
4 голосов
/ 29 октября 2010

Я недавно установил Visual-Web-Developer 10 и открыл в нем свое старое решение asp.net 3.5 и преобразовал его в решение asp.net 4. все работает нормально, кроме одной странной проблемы: внезапно все символы, такие как: 'или "в коде скрипта заголовка, становятся: ' or " и из-за этого все мои javascript не работают и выдают ошибку на всех моих страницах solutuin.

Я пытался сохранить страницу в другой кодировке, но это не помогло: Вот пример того, что происходит: в коде на стороне сервера:

HtmlGenericControl Include = new HtmlGenericControl("script");
    Include.Attributes.Add("type", "text/JavaScript");
    Include.InnerText = "browser = \"ie\"; browserVer = '8'; bodyDir = 'rtl'; adverID = '123'; webKind = 'adver';";
    Page.Header.Controls.Add(Include);
    Include.Dispose();

на стороне пользователя я получаю:

<script type="text/JavaScript">browser = &quot;ie&quot;; browserVer = &#39;8&#39;; bodyDir = &#39;rtl&#39;; adverID = &#39;123&#39;; webKind = &#39;adver&#39;;</script>

большое спасибо за любую помощь chainan

Ответы [ 2 ]

6 голосов
/ 29 октября 2010

Вместо этого используйте свойство InnerHtml, чтобы добавить содержимое скрипта.InnerText преобразуется ..

Цитата из InnerText

В отличие от свойства InnerHtml, InnerText свойство автоматически кодирует специальные символы в и из сущностей HTML....

2 голосов
/ 29 октября 2010

Используйте InnerHtml свойство вместо InnerText.

* "Свойство InnerHtml не позволяет автоматически кодировать специальные символы в и из сущностей HTML.отображать специальные символы, такие как символ <, которые браузер обычно интерпретирует как имеющие особое значение. Символ <интерпретируется как начало тега и не отображается на странице. Для отображения символа <вам потребуетсяиспользовать сущность <code>&lt;.

...