Как предотвратить кодирование HTML для встроенных выражений в XML-литералах (VB.NET)? - PullRequest
7 голосов
/ 13 ноября 2008

Со следующим кодом:

Dim x As System.Xml.Linq.XElement = _
<div>
<%= message.ToString() %>
</div>
Dim m = x.ToString()

... если сообщение является HTML, то символы <и> преобразуются в &lt; и &rt;.

Как я могу заставить его пропустить эту кодировку?

Ответы [ 2 ]

7 голосов
/ 30 апреля 2009

Какой тип вашей переменной message? Если message является XElement, просто прекратите вызов .ToString следующим образом:

Dim x As System.Xml.Linq.XElement = _
    <div>
        <%= message %>
    </div>
Dim m = x.ToString()

Если message - это какой-то другой тип (например, StringBuilder), то сделайте следующее:

Dim x As System.Xml.Linq.XElement = _
    <div>
        <%= XElement.Parse(message.ToString()) %>
    </div>
Dim m = x.ToString()
1 голос
/ 13 ноября 2008

Вам необходимо открыть фрагмент HTML в виде документа XML и добавить узел документа к узлу Div, который вы создаете.

Если вы хотите добавить XML (или HTML) к существующему документу XML, вам нужно добавить его как XML, а не как текст (причина, которая кодируется).

...