Как показать новую строку (<br>) с LabelFor? - PullRequest
1 голос
/ 11 августа 2011

У меня есть TextArea, где пользователь может написать текст. Когда я пытаюсь показать текст с помощью LabelFor, я получаю ошибку «недопустимые символы», потому что в строке есть «\ r \ n» для каждой новой строки.

Я пытался использовать это решение:

Показать новые строки из текстовой области в ASP.NET MVC

и

     if (q.help_text != null)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            System.IO.StringReader sr = new System.IO.StringReader(q.help_text);

            string tmpS = null;
            do
            {
                tmpS = sr.ReadLine();
                if (tmpS != null)
                {
                    sb.Append(tmpS);
                    sb.Append("<br />");
                }
            } while (tmpS != null);
            var convertedString = sb.ToString();
            qvm.HelpText = convertedString;
        }
        else
            qvm.HelpText = q.help_text;

Вместо создания новых строк LabelFor также выводит код br. Как я могу решить это?

EDIT

Решением было сделать это следующим образом:

@ Html.Raw ( "

" + question.HelpText +»

Ответы [ 2 ]

3 голосов
/ 11 августа 2011

Это потому, что LabelFor - это HTML-кодировка текста. Это сделано, чтобы избежать проблем межсайтового скриптинга. Что вы можете сделать, это использовать тег pre для отображения строки текстовой области как есть (с \ r \ n)

0 голосов
/ 11 августа 2011

Используйте этот синтаксис для LabelFor

@Html.Raw(Html.LabelFor(x => x.Name))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...