У меня есть приложение MVC 2.0, которое принимает многострочный ввод из текстовой области, а затем отображает текст в другом месте.Я хотел бы сохранить хотя бы абзацы.
В настоящее время я использую помощник TextArea для формы, а затем Html. Повторно кодирую значение при выводе.
// form view
<%: Html.TextAreaFor(model => model.Text, new { cols = 80, rows = 20 })%>
// display view
<div><%: Model.block.Text %></div
Конечно, этоодного недостаточно.Вход
first line
second line
отображается как
<div>first line
second line</div>
, который отображается как «первая строка вторая строка».Не идеально.
Я понимаю, что мог бы сам вставить тег p в текст или даже сделать так, чтобы пользователь ввел их.Однако в этом случае мне пришлось бы отключить HtmlEncode для отображаемой страницы, что кажется проблематичным, верно?Неужели нет лучшего способа, чем вручную удалить все теги из текста, затем вызвать HtmlEncode, затем добавить теги p и отключить автоматическое кодирование представлений?
Кстати, я слышал, что люди на этом форуме обращаются к редакторам WYSIWYG, таким как TinyMCE, для ввода текстовой области.Пока я не вижу, как это решит проблему.Редактор не собирается делать надежную очистку входных данных, но снова потребует, чтобы я удалил HtmlEncoding на странице отображения.Еще раз я столкнусь с написанием сложного дезинфицирующего средства с нуля или просто удаляю все теги, включая a и изображение, пока модный редактор WYSIWYG не станет полностью бессмысленным.