Разрыв строки в области TextBox или Html - PullRequest
10 голосов
/ 17 ноября 2008

Как можно разделить разрывы строк и пробелы в текстовом поле MultiLine или текстовом поле HTML при вставке базы данных (Asp.Net) Например, что мне делать, если я хочу вставить

Привет

Мир

в базу данных с переносами строк? А также при отображении, что я должен делать? Я не хочу использовать редактор для этого.


Но проблема в том, как разделить разрыв строки и пробел. Теперь, когда я вставляю

Hello

Мир

или hello world, он сохраняется с тем же символом в базе данных. Поэтому я не могу разделить их, и я показываю привет мир, хотя пользователь использует разрывы строк, такие как выше. Значение, полученное из TextBox или HTML-области, совпадает со значением разрыва строки или пробела.

Ответы [ 10 ]

15 голосов
/ 17 ноября 2008

Разрывы строк должны сохраняться до дБ. Когда вы получите информацию и отобразите ее в виде HTML, просто замените разрыв строки (т. Е. Environment.NewLine) на тег разрыва строки (т. Е. < b r / > )

6 голосов
/ 12 октября 2010

< br /> не работал для меня. (при назначении текста для html textarea)

\r\n сделал.

3 голосов
/ 05 апреля 2012

Использование Razor (MVC3) для отображения или сохранения разрывов строк, извлеченных из моей базы данных, работает следующим образом:

@Html.Raw(text_to_display.Replace(Environment.NewLine, "<br/>"))
2 голосов
/ 15 октября 2009

Несколько вариантов:
& Бык; Преобразуйте переводы строк в <br/>.
& Бык; Поместите свой текст в блок <pre>.
& Бык; Поместите каждую строку в отдельный блок <div>.

Помните, что все пробелы (SP, HT, LF, CR) игнорируются в HTML (большую часть времени).

То, что вы храните в своей базе данных, должно быть чисто символьным текстом. Преобразование его в правильный HTML для отображения требует замены определенных символов последовательностями HTML.

1 голос
/ 16 декабря 2018

При попытке сохранить отформатированные символы возврата каретки / новые строки для элемента управления textarea на странице asp.net, которая получает значение из кода, который вы используете, следует использовать:

textarea.Value = Server.HtmlDecode(myValue.Replace("\r\n", "&#13;"));

Это будет от:

some blah blah\r\nblah blah

до:

some blah blah
blah blah

Поэтому, когда вы используете javascript для чтения разрывов строк, вы можете использовать:

textarea.value.indexOf("\n");
1 голос
/ 29 сентября 2009

Вы можете использовать

0 голосов
/ 15 октября 2009

Единственное предложение, которое сработало для меня, было: <& # 1 0 ;> Я использую текстовое поле, созданное Front Page, теперь работающее на сервере Linux.

Многократное использование строки не приведет к множественному разрыву строки, но одна запись строки в новой строке обеспечивает двойной разрыв строки, подходящий для нового абзаца.

Прежде чем переместить мою страницу с сервера, использующего ОС Windows, я смог выполнить разрыв строки, дважды введя «Ввод».

0 голосов
/ 18 ноября 2008

Вам необходимо заменить все экземпляры vbcrlf (environment.newline) на html-тег []

И для разрешения нескольких пробелов вам необходимо заменить пробел на [& n b s p;]

Это преобразует ваш простой тест в html «достаточно», чтобы его можно было просмотреть как html (работает для меня во введенных текстовых разделах моего веб-сайта)

Из моих тегов это только текст между [] и удаление пробелов ... размещение текста тега на странице привело к его отображению в виде HTML !!!!

0 голосов
/ 18 ноября 2008

Сохранение пробелов после рендеринга в HTML проще всего сделать, преобразовав его в сущность HTML &nbsp;.

0 голосов
/ 17 ноября 2008

Я всегда сохраняю пользовательский ввод, как он есть, но тогда вы всегда должны быть очень осторожны при его повторном отображении. Разрывы строк - это просто случай замены System.Environment.Newline на «
». Не уверен, что лучшая практика для сохранения других пробелов при отображении в виде HTML, было бы интересно услышать, что делают другие люди.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...