I'm using the XElement object to build some HTML in the code-behind on an ASP.NET page.
I may or may not add some XAttributes to this XElement as I go along, in the following fashion:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
);
Now, if I want to add some content into myDiv which contains HTML, the XElement automatically escapes this which, in my situation, is undesirable.
So if I have:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
"<span id='content'>hello world</span>"
);
And then I render this into a Placeholder object using the following code:
myPlaceholder.Controls.Add(new System.Web.UI.WebControls.Literal { Text = elmnt.CreateNavigator().OuterXml });
When the page loads, the source reveals that the inner content inside elmnt has been escaped, and has the following format in the page's source:
<span id='content'>hello world</span>
Given that the XML I'm compiling here is valid HTML, and the inner content is also valid HTML, how can I tell the XElement parent object to not escape the inner content? How can I leave it in its native format?
See Question&Answers more detail:os