Что с вариациями разрыва строки в C # и ASP.NET? ( r n против n)

Я писал код для ASP.NET с самого начала, и сегодня я столкнулся с чем-то, чего я никогда раньше не видел. Обычно я искал разрывы строк в C # (например, при публикации в ASP.NET из текстовой области), ожидая " r n". Теперь я использую MVC-фреймворк, и текст, приходящий по проводам из текстовой области, просто имеет " n" для разрывов строк.

Что-то происходит в элементах управления TextBox старой школы, которые нормализуют разрывы строк? Поскольку MVC просто использует данные формы как есть, это нормально? Хотелось бы получить некоторое представление.

c#,asp.net,asp.net-mvc,newline,

1

Ответов: 3


против 6 принят

Я сделал замечание, что фактическая последовательность разрыва строки отличается от браузера к браузеру.

Если у вас есть многострочная текстовая область на странице, и страница отправляется, то:

IE возвращает " r n", чтобы указать новые строки. FF возвращает « n» в этом случае.

Я проверил это где-то в конце 2006 года, так что теперь оно может быть другим.

Я не верю, что это может иметь какое-либо отношение к WebForms и MVC. Оба просто обрабатывают отправленные данные и возвращают их вам как есть.

Если вы хотите как-то обработать и заменить эти символы, имеет смысл делать это в длинном-коротком порядке:

string userText = form["Text"];
userText = userText.Replace ("
", "<br/>").Replace ("
", "<br/>");

n - вариант окончания строки в системах * nix. r n - специфичное для Windows поведение конца строки.

Если вы проверяете окончания строк и открываете свой интерфейс для сред, отличных от Windows, убедитесь, что вы проверяли не только r n, но и только n.

Для получения дополнительной информации ознакомьтесь со статьей Newline в Википедии.


Я использую Environment.NewLine :

string userText = form["Text"];
userText = userText.Replace (Environment.NewLine, "<br />")

Также взгляните на пост @Haacked о некоторых причудах новой строки текста .

C #, asp.net, asp.net-MVC, символ новой строки,
Похожие вопросы