Отключить HTML-кодировку значений атрибутов в TagBuilder
Я использую MVC, и я создал функцию расширения HtmlHelper ImageLink. Эта функция использует два объекта TagBuilder для создания ссылки на изображение HTML (например, <a><img/></a>
).
Работает нормально, но теперь у меня есть страница, на которой сначала нужно подтвердить действие для кнопки с изображением. Итак, я добавил атрибут onclick с помощью "javascript: return подтверждение (" подтвердить меня ");" в качестве кода onclick.
Это выглядит как: onclick="javascript:return подтвердить ('подтвердить меня');"
Я думал, что это не сработает, но это работает. Но теперь, когда мы входим:
msgstr "javascript: возвращение подтверждения ('подтвердите меня \r\nnewline');"
это выглядит как:
onclick = "javascript: вернуть подтверждение ('подтвердите меня, новая строка');"
который не работает.
Я бы предпочел, чтобы TagBuilder вообще ничего не кодировал и просто позволил мне позаботиться об этом. Но так как это происходит, я сейчас ищу способ заставить это работать должным образом.
1 ответ
Обратная косая черта (\) - это специальный символ в строках C#, поэтому вам просто нужно экранировать его, как это обычно делается в любой другой ситуации, когда вы хотите, чтобы он появился в последней строке.
tag.MergeAttribute("onclick", "return confirm('first line\\n\\nsecond line');");