Html.Encode
dường như chỉ cần gọi HttpUtility.HtmlEncode
để thay thế một vài ký tự html cụ thể bằng chuỗi thoát của chúng.ASP.NET MVC Html.Encode - Dòng mới
Tuy nhiên, điều này không cung cấp bất kỳ xem xét nào về cách các dòng mới và nhiều khoảng trắng sẽ được diễn giải (khoảng trắng đánh dấu). Vì vậy, tôi cung cấp một vùng văn bản để người dùng nhập một khối văn bản thuần túy của thông tin, và sau đó hiển thị dữ liệu đó trên màn hình khác (sử dụng Html.Encode
), các dòng và khoảng cách mới sẽ không được giữ nguyên.
Tôi nghĩ rằng có 2 tùy chọn, nhưng có thể có một người thứ ba tốt hơn có thể đề xuất.
Một lựa chọn sẽ được chỉ cần viết một phương pháp tĩnh mà sử dụng HtmlEncode, và sau đó thay thế dòng mới trong chuỗi kết quả với <br>
và nhóm của nhiều không gian với
Một lựa chọn khác sẽ được mess về với white-space: pre
thuộc tính trong phong cách của tôi - tuy nhiên tôi không chắc chắn nếu điều này sẽ tạo ra tác dụng phụ khi các phương pháp trợ giúp Html bao gồm các dòng mới và tabbing để làm cho nguồn trang khá.
Có tùy chọn thứ ba, như cờ toàn cầu, sự kiện hoặc phương pháp ghi đè tôi có thể sử dụng để thay đổi cách mã hóa html được thực hiện mà không cần phải làm lại các phương thức trợ giúp html?
Phần bộ điều khiển sẽ không biên dịch. – 1kevgriff
Không biên dịch.nên là: MvcHtmlString được mã hóa = MvcHtmlString (HttpContext.Current.Server.HtmlEncode (Body) .Replace (Environment.NewLine, "
")); – AntonK
"Loại 'System.Web.HttpServerUtility' không có hàm tạo nào được định nghĩa" sử dụng HttpUtility.HtmlEncode – Benoit