awj*_*awj 5 html asp.net xelement escaping
我正在使用XElement对象在ASP.NET页面的代码隐藏中构建一些HTML.
我可能会或者可能不会像我一样向这个XElement添加一些XAttributes,方式如下:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
);
Run Code Online (Sandbox Code Playgroud)
现在,如果我想在myDiv中添加一些包含HTML的内容,那么XElement会自动转义,在我的情况下,这是不可取的.
所以,如果我有:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
"<span id='content'>hello world</span>"
);
Run Code Online (Sandbox Code Playgroud)
然后使用以下代码将其渲染为Placeholder对象:
myPlaceholder.Controls.Add(new System.Web.UI.WebControls.Literal { Text = elmnt.CreateNavigator().OuterXml });
Run Code Online (Sandbox Code Playgroud)
当页面加载时,源显示elmnt中的内部内容已被转义,并在页面的源中具有以下格式:
<span id='content'>hello world</span>
Run Code Online (Sandbox Code Playgroud)
鉴于我在这里编译的XML是有效的HTML,并且内部内容也是有效的HTML,我如何告诉XElement父对象不要逃避内部内容?如何将其保留为原生格式?
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
new XRaw("<span id='content'>hello world</span>")
);
public class XRaw : XText
{
public XRaw(string text):base(text){}
public XRaw(XText text): base(text){}
public override void WriteTo(System.Xml.XmlWriter writer)
{
writer.WriteRaw(this.Value);
}
}
Run Code Online (Sandbox Code Playgroud)