Sto utilizzando l'oggetto XElement per creare codice HTML nel code-behind in una pagina ASP.NET.Come evitare System.Xml.Linq.XElemento di escape del contenuto HTML?
mi può o non può aggiungere un po 'XAttributes a questo XElement mentre vado avanti, nel modo seguente:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
);
Ora, se voglio aggiungere qualche contenuto in myDiv che contiene HTML, il XElement scappa automaticamente ciò che, nella mia situazione, non è desiderabile.
Quindi, se ho:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
"<span id='content'>hello world</span>"
);
E poi mi rendo questo in un oggetto segnaposto utilizzando il seguente codice:
myPlaceholder.Controls.Add(new System.Web.UI.WebControls.Literal { Text = elmnt.CreateNavigator().OuterXml });
Quando il caricamento della pagina, la fonte rivela che il contenuto interno interno elmnt è stato sfuggito e ha il seguente formato nella fonte della pagina:
<span id='content'>hello world</span>
Dato che l'XML che sto compilando qui è HTML valido, e il contenuto interno è anche HTML valido, come posso dire all'oggetto padre XElement a non sfuggire al contenuto interno? Come posso lasciarlo nel suo formato nativo?
la classe HtmlTextWriter è contrassegnata come 'MustInherit', quindi con le mie conoscenze limitate non sono sicuro di come implementare un HtmlTextWriter nel mio oggetto XElement. So che è una grande domanda, ma potresti fornire un breve esempio di come convertirei (usando il mio esempio precedente) ' ciao mondo' in un oggetto HtmlTextWriter? – awj
Devo anche dire che sono entusiasta di usare la classe XElement perché sto usando una cache su misura che accetta XElements, ma non sono sicuro che accetterà un'istanza di un HtmlTextWriter. Inoltre, stai suggerendo di sostituire l'intero XElement con un HtmlTextWriter piuttosto che usare questo per contenere semplicemente l'HTML interno? – awj
@awj vedere il mio post aggiornato sull'utilizzo. Non capisco di cosa si parli di MustInherit, ma comunque questa classe è pubblica e già implementata. Suggerisco che per costruire html, HtmlTextWriter sia molto più semplice e potente di XElement. XElement è più generale – archil