Есть ли что-то вроде функции PHP nl2br() для ASP.NET MVC?


Существует ли стандартная функция, которая выполняет перевод строки в кодировку <br /> в ASP.Net MVC?

Author: BalusC, 2010-04-29

5 answers

Теперь есть:

public static class StockStandardFunctions
{
    public static string Nl2br(this string input)
    {
        return input.Nl2br(true);
    }

    public static string Nl2br(this string input, bool is_xhtml)
    {
        return input.Replace("\r\n", is_xhtml ? "<br />\r\n" : "<br>\r\n");
    }
}

Исправлено, чтобы немного точнее следовать спецификации php для nl2br (спасибо Максу за указание на это). Однако это все еще предполагает \r\n новых строк...

 8
Author: Daniel Renshaw, 2010-04-30 07:46:27

Все эти ответы вполне верны, но вы также должны сделать mystring.Replace("\r?\n", "<br />");, чтобы поймать окончания строк UNIX, если ваш источник (пользовательский ввод или бд) может это обеспечить.

 4
Author: Residuum, 2010-04-29 14:45:08

Я не верю, что существует "стандартная стандартная функция", которая делает это точно так же, как функция nl2br() PHP, однако следующее будет эквивалентно:

myString.Replace("\r\n", "<br />");
 3
Author: Jamie Dixon, 2010-04-29 14:40:27
mystring.Replace("\r\n","<br />");
 2
Author: David, 2010-04-29 14:39:40

Как насчет чего-то вроде:

public static string Nl2br(string str)
{
    return Nl2br(str, true);
}

public static string Nl2br(string str, bool isXHTML)
{
    string brTag = "<br>";
    if (isXHTML) {
        brTag = "<br />";
    }
    return str.Replace("\r\n", brTag + "\r\n");
}

Вот сигнатура функции из документации PHP:

Строка nl2br (строка $string [, bool $is_xhtml = true])

Функция PHP также добавляет новую строку после тега break.

 1
Author: webbiedave, 2010-04-29 15:07:01