Html.Encode
, кажется, просто вызывает HttpUtility.HtmlEncode
, чтобы заменить несколько конкретных символов HTML на их escape-последовательности.ASP.NET MVC Html.Encode - Новые строки
Однако это не дает никакого представления о том, как интерпретировать новые строки и несколько пробелов (разметка пробелов). Поэтому я предоставляю текстовую область для ввода пользователем простого текстового блока информации, а затем последующее отображение этих данных на другом экране (с использованием Html.Encode
), новые строки и интервалы не сохраняются.
Я думаю, что есть 2 варианта, но, возможно, есть лучший третий, кто может предложить.
Одним из вариантов было бы просто написать статический метод, который использует HTMLEncode, а затем заменяет новые строки в результирующей строке с <br>
и группы нескольких пространств с
Другим вариантом будет возиться с white-space: pre
атрибут в моих таблицах стилей - однако я не уверен, что это будет приводить к побочным эффектам, когда методы помощника Html включают в себя новые строки и табуляцию, чтобы сделать источник страницы симпатичным.
Есть ли третий вариант, как глобальный флаг, переопределение события или метода. Я могу использовать, чтобы изменить способ кодирования html без необходимости повторного использования html-хелпер-методов?
Контрольная часть не компилируется. – 1kevgriff
Не компилируется.должен быть: MvcHtmlString encoded = MvcHtmlString (HttpContext.Current.Server.HtmlEncode (Body) .Replace (Environment.NewLine, "
")); – AntonK
«Тип« System.Web.HttpServerUtility »не имеет определенных конструкторов» использовать HttpUtility.HtmlEncode – Benoit