Показывать новые строки из текстовой области в ASP.NET MVC - PullRequest
9 голосов
/ 09 июня 2009

В настоящее время я создаю приложение с использованием ASP.NET MVC. Я получил некоторый пользовательский ввод внутри текстовой области, и я хочу показать этот текст с символами
вместо новых строк. В PHP есть функция nl2br, которая делает именно это. Я искал в Интернете эквиваленты в ASP.NET/C#, но не нашел решения, которое подходит мне.

Первый - это (ничего для меня не делает, комментарии просто печатаются без новых строк):

<%
    string comment = Html.Encode(Model.Comment);
    comment.Replace("\r\n", "<br />\r\n");
%>
<%= comment %>

Вторым, что я обнаружил, было следующее (Visual Studio сообщает, что VbCrLf недоступен в этом контексте - я пробовал его в представлениях и контроллерах):

<%
    string comment = Html.Encode(Model.Comment);
    comment.Replace(VbCrLf, "<br />");
%>
<%= comment %>

Ответы [ 4 ]

26 голосов
/ 09 июня 2009

Попробуйте (сам не проверял):

comment = comment.Replace(System.Environment.NewLine, "<br />");

ОБНОВЛЕНИЕ:

Только что протестировал код - он работает на моей машине

ОБНОВЛЕНИЕ:

Другое решение:

System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringReader sr = new System.IO.StringReader(originalString);
string tmpS = null;
do {
    tmpS = sr.ReadLine();
    if (tmpS != null) {
        sb.Append(tmpS);
        sb.Append("<br />");
    }
} while (tmpS != null);
var convertedString = sb.ToString();
3 голосов
/ 10 июня 2012

для просмотра HTML-тегов, таких как DisplayFor

вам нужно использовать другой метод, фактически, mvc dosent позволяет вам просматривать теги на странице

но вы можете использовать это, чтобы игнорировать эту опцию

@Html.Raw(model => model.text)

удачи

0 голосов
/ 23 июня 2014

@Html.Raw (@ Model.Comment.RestoreFormatting ())

и чем ...

public static class StringHelper
{
    public static string RestoreFormatting(this string str)
    {
        return str.Replace("\n", "<br />").Replace("\r\n", "<br />");
    }
}
0 голосов
/ 06 июня 2011

Пожалуйста, посмотрите этот ответ Замените разрывы строк в строке C # здесь.

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