2011-12-14 42 views
5

Tôi có trình chỉnh sửa văn bản, sau khi áp dụng định dạng cho văn bản tôi hiển thị văn bản khi một nút được nhấp. Tôi muốn văn bản được hiển thị với tất cả các định dạng được áp dụng trong trình soạn thảo văn bản.Cách hiển thị văn bản (định dạng Html) trong một trang web (Asp.net C#)

lbl_Subject.Text = Server.HtmlEncode(formattedtext); 

nhưng nó không được hiển thị trong định dạng áp dụng thay vào đó nó được hiển thị như

<p> This is Para 1</p> <p> this is Para 2</p> <p> <strong>this is bold</strong></p> 

làm thế nào tôi có thể hiển thị văn bản với định dạng tất cả các ứng dụng trong soạn thảo văn bản

Cập nhật tôi đã cố gắng với chữ số

kết quả là

&lt;p&gt; This is Para 1&lt;/p&gt; &lt;p&gt; this is Para 2&lt;/p&gt; &lt;p&gt; &lt;strong&gt;this is bold&lt;/strong&gt;&lt;/p&gt; 

Trả lời

8

sử dụng div thay vì nhãn.

div1.InnerHtml=formattedtext; 
1

Bạn có thể muốn sử dụng Kiểm soát văn học thay vì nhãn. Điều này sẽ lấy chuỗi HTML thô của bạn và xuất nó theo yêu cầu trên trang.

HƯỚNG DẪN: Hãy rất, rất cẩn thận khi hiển thị HTML như thế này. Ví dụ: không khó thêm các tập lệnh độc hại, các tập lệnh này sẽ được chạy từ trang đã xem.

+0

+1 Vui lòng chỉ định Chế độ = "Mã hóa". – adatapost

6

HtmlEncode đảm bảo văn bản đó là hiển thị đúng trong trình duyệt và không giải thích bởi trình duyệt dưới dạng HTML.

Thử xóa HtmlEncode hoặc sử dụng HtmlDecode.

+1

'Server.HtmlDecode (Server.HtmlEncode (formattedtext))' có vẻ hơi ngớ ngẩn, nhưng có lẽ đó chỉ là tôi. –

1

Nếu bạn muốn văn bản hiển thị dưới dạng html trong trình duyệt, thì tại sao bạn HtmlEncoding nó? HtmlEncode được thiết kế để lấy mã có khả năng có các ký hiệu html trong đó và mã hóa nó để các biểu tượng đó in dưới dạng văn bản thô. Tôi sẽ nói rằng mã bạn trình bày hoạt động chính xác như nó sẽ được dự kiến ​​sẽ hành xử. Nếu bạn muốn mã của bạn xuất ra html được hiển thị, thì nó phải bằng chữ và nó chỉ đơn giản là văn bản.

lit_Subject.Text = formattedtext; 
0

Hãy xem qua AntiXssLibrary (có thể tìm thấy qua nuget).

Đặc biệt là ở lớp Sanitizer. Phải mất một chuỗi và loại bỏ mọi thứ liên quan đến bảo mật khỏi nó.

nó cũng sẽ thay đổi tên của các lớp css, vì vậy bạn có thể phải tinker với kết quả, để khôi phục tên lớp. Nhưng nó chắc chắn cho phép bạn để có được HTML RAW một cách an toàn trên trang của bạn, w/o rủi ro tấn công XSS.

0

Bạn có thể sử dụng mã này: Html.Raw(formattedtext)

Các vấn đề liên quan