Если у меня есть всплывающая подсказка, которая заполняется из таблицы базы данных. Я генерирую этот html ниже с моего кода на стороне сервера С#
public string GetImage()
{
return "<img class='iconSpace' title ='" + dataIssue + "' src='/Content/Images/Icons" + size + "/information_red.png' />";
}
проблема в том, что если переменная dataIssue имеет в себе апостроф, она отображает только символы в строке до этой точки.
Каков наилучший способ показать всю строку в подсказке, указанную выше?
'
не является специальным символом для HTML, и браузер показывает целую строку без проблем, но у вас могут быть проблемы со следующими символами " < > &
их следует экранировать как:
"
<
>
&
если ваш браузер неправильно обрабатывает HTML-стандарт и вырезает остальную часть строки, вы можете попытаться избежать одиночной кавычки с помощью '
- это будет работать для всех браузеров
так, по ценностям стандартного атрибута HTML должны быть окружены "
символом, а не '
, поэтому здесь проблема должна быть решены:
dataIssue = any_kind_of_html_escape_function_here(dataIssue);
return "<img class=\"iconSpace\" title=\"" + dataIssue + "\" src=\"/Content/Images/Icons" + size + "/information_red.png\" />";
Для функции asp.net htmlencode определяется здесь: http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx
Вы должны использовать HttpUtility.HtmlEncode("...")
для него.
Будет ли это работать для вас?
string img = "<img class=\"iconSpac\" title=\"" + dataIssue + "\" " + "scr=\"/Content/Images/Icons\"" + size + "/information_red.png\" />";