Html.Encode
, кажется, просто вызывает HttpUtility.HtmlEncode
, чтобы заменить несколько специфических символов html их escape-последовательностями.
Однако это не учитывает, как будут интерпретироваться новые строки и несколько пробелов (пробел разметки). Поэтому я предоставляю пользователю текстовую область для ввода простого текстового блока, а затем позже отображаю эти данные на другом экране (используя Html.Encode
), новые строки и интервалы не сохраняются.
Я думаю, что есть 2 варианта, но, может быть, есть и третий вариант, который кто-то может предложить.
Один из вариантов - написать статический метод, использующий HtmlEncode, а затем заменить новые строки в результирующей строке на <br>
, а группы из нескольких пробелов -
Другим вариантом было бы возиться с атрибутом white-space: pre
в моих таблицах стилей - однако я не уверен, будут ли это вызывать побочные эффекты, когда вспомогательные методы Html включают новые строки и табуляции для придания привлекательности исходному тексту страницы.
Есть ли третий вариант, такой как глобальный флаг, переопределение события или метода, который я могу использовать, чтобы изменить способ кодирования html без необходимости повторного использования вспомогательных методов html?