Tôi đang sử dụng đối tượng XElement để xây dựng một số HTML trong mã-đằng sau trên một trang ASP.NET.Làm cách nào để tránh System.Xml.Linq.XElement thoát khỏi nội dung HTML?
tôi có thể hoặc không thêm một số XAttributes để XElement này như tôi đi cùng, trong thời trang sau:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
);
Bây giờ, nếu tôi muốn thêm một số nội dung vào myDiv chứa HTML, XElement tự động thoát khỏi điều này, trong tình huống của tôi, là không mong muốn.
Vì vậy, nếu tôi có:
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
"<span id='content'>hello world</span>"
);
Và sau đó tôi làm điều này vào một đối tượng giữ chỗ bằng cách sử dụng đoạn mã sau:
myPlaceholder.Controls.Add(new System.Web.UI.WebControls.Literal { Text = elmnt.CreateNavigator().OuterXml });
Khi tải trang, các nguồn tiết lộ rằng nội dung bên trong bên trong elmnt đã được thoát và có định dạng sau trong nguồn của trang:
<span id='content'>hello world</span>
Cho rằng XML tôi đang biên dịch ở đây là HTML hợp lệ và nội dung bên trong cũng là HTML hợp lệ, làm thế nào tôi có thể nói đối tượng chalement của XElement là không phải là thoát khỏi nội dung bên trong? Làm thế nào tôi có thể để nó ở định dạng gốc?
lớp HtmlTextWriter được đánh dấu là 'MustInherit', vì vậy với kiến thức hạn chế của tôi, tôi không chắc cách tốt nhất để triển khai HtmlTextWriter vào đối tượng XElement của tôi. Tôi biết đó là một yêu cầu lớn nhưng bạn có thể cung cấp một ví dụ ngắn về cách tôi chuyển đổi (sử dụng ví dụ trên) ' hello world' vào đối tượng HtmlTextWriter không? – awj
Tôi cũng nên đề cập đến rằng tôi muốn sử dụng lớp XElement bởi vì tôi đang sử dụng một bộ nhớ cache riêng biệt chấp nhận XElements, nhưng tôi không chắc chắn nếu nó sẽ chấp nhận một thể hiện của một HtmlTextWriter. Ngoài ra, bạn có gợi ý rằng tôi thay thế toàn bộ XElement bằng một HtmlTextWriter thay vì sử dụng nó để chỉ chứa HTML bên trong? – awj
@awj xem bài đăng cập nhật của tôi về cách sử dụng. Tôi không hiểu những gì MustInherit bạn đang nói về, nhưng dù sao, lớp này là công khai và đã được thực hiện. Tôi đề nghị rằng để xây dựng html, HtmlTextWriter là đơn giản hơn nhiều và mạnh mẽ hơn XElement. XElement là tổng quát hơn – archil