многострочный текст в бритве - PullRequest
0 голосов
/ 25 ноября 2018

Я взял многострочный ввод с HTML-тэгом textarea, например:

line 1
line 2 with <tags> and &#64; and <b> bold </b>
line 3

, но как мне позже отобразить это?

Если я использую:

@Html.DisplayFor(m => m.MultilineText2)

он прекрасно обрабатывает специальные символы, но не перевод строки

Если я использую:

@Html.Raw(Model.MultilineText2.Replace(Environment.NewLine, "<br/>"))

, он обрабатывает перевод строки, но не специальные символы.

Я простохотите, чтобы результат отображался точно в том виде, в котором он был введен пользователем (именно так, как вы видите в приведенном выше примере)

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Если я правильно понимаю, вам нужно кодировать все остальное, кроме прерывателей строки.Но вам не нужно заботиться об этом.Так как есть стандартный способ white-space:

pre-line

Последовательности пробелов свернуты.Строки разбиваются на символах новой строки, на
и, при необходимости, для заполнения полей.

Итак, простое добавление white-space: pre-line будет работать:

<span style="white-space: pre-line">@Html.DisplayFor(m => m.MultilineText2)</span>

сгенерированный HTML будет:

<span style="white-space: pre-line">line 1
 line 2 with &lt;tags&gt; and &amp;#64; and &lt;b&gt; bold &lt;/b&gt;
line 3</span>

enter image description here

0 голосов
/ 25 ноября 2018

Просто используйте @ Html.TextAreaFor (m => m.fieldName)

...