Отключить HTML-кодировку значений атрибутов в TagBuilder - PullRequest
2 голосов
/ 09 октября 2011

Я использую MVC и создал функцию расширения HtmlHelper ImageLink.Эта функция использует два объекта TagBuilder для создания ссылки на изображение в формате HTML (например, <a><img/></a>).

Работает нормально, но теперь у меня есть страница, на которой сначала нужно подтвердить действие для кнопки изображения.Итак, я добавил атрибут onclick с помощью «javascript: return подтверждение (« подтвердить меня »);»в качестве кода onclick.

Это выглядит так: onclick = "javascript: return verify ('подтвердите меня');"

Я думаю, что это не будет работать, но это работает.Но теперь, когда мы вводим:

"javascript: return verify ('подтвердите меня \ r \ nnewline');"

это выглядит как:

onclick = "javascript:return подтвердите ('подтвердите меня, новая строка'); "

, который не работает.

Я бы предпочел, чтобы TagBuilder вообще ничего не кодировал и просто позволил мне позаботиться об этом.,Но так как это происходит, я сейчас ищу способ, чтобы заставить это работать должным образом.

1 Ответ

2 голосов
/ 09 октября 2011

Обратная косая черта (\) - это специальный символ в строках C #, поэтому вам просто нужно экранировать его, как это обычно делается в любой другой ситуации, когда вы хотите, чтобы он появился в последней строке.

tag.MergeAttribute("onclick", "return confirm('first line\\n\\nsecond line');");
...