C # attributecollection.add Апостроф - PullRequest
3 голосов
/ 06 ноября 2011

У меня проблема.

Это мои строки кода:

HtmlTableRow row = new HtmlTableRow();
row.Attributes.Add("style", "cursor: pointer;");
row.Attributes.Add("onClick", string.Format("toggle('{0}');", AttributeName));

Я использовал его в .Net 2.0, и он работал нормально.но теперь я работаю с .net 4.0, и апостроф на моей веб-странице преобразуется в ', и он больше не работает.

Как я могу получить сам апостроф или обойти эту проблему???

Обратите внимание, что это известная проблема ...

Ответы [ 2 ]

0 голосов
/ 06 ноября 2011

хорошо ... пока не отвечаю ... так что это была моя работа.

HtmlGenericControl dynDiv = new HtmlGenericControl("div");

dynDiv = Replace(dynDiv, "'", "'");

public HtmlGenericControl Replace(HtmlGenericControl htmlGenericControl, string    
source, string target)
{
     StringWriter sw = new StringWriter();
     HtmlTextWriter htmlTextWriter = new HtmlTextWriter(sw);
     htmlGenericControl.RenderControl(htmlTextWriter);
     string str = sw.GetStringBuilder().ToString();

     str = str.Replace(source, target);
     htmlGenericControl.InnerHtml = str;

     return htmlGenericControl;
}

Небольшая ошибка - по некоторым причинам он дублирует тег "div" в ResultPage.aspx, но не мешает коду, поэтому мне все равно.

НО - когда я пытался использовать его для HtmlGenericControl script = new HtmlGenericControl("script");, он нарушает код. поэтому в этом случае обходной путь заключался в имплантации фактического кода Java-скрипта непосредственно в ResultPage.aspx -> View Designer -> source.

<script type="text/javascript">
    My Script (with the apostrophe...)
</script>

Наслаждайтесь! :)

0 голосов
/ 06 ноября 2011

Кодирование апостропов как &#39; совершенно правильно, так что это не ваша настоящая проблема.Использование onclick="toggle('asdf')" и onclick="toggle(&#39;asdf&#39;)" эквивалентны.

Демонстрация: http://jsfiddle.net/Guffa/FkYut/

Вы должны искать другую причину, по которой код не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...