Отключить 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');");
Другие вопросы по тегам