.Replace(Environment.NewLine, "<br/" >") работает на localhost, но не тогда, когда я загружаю свой веб-сайт на хостинг
Я понятия не имею, почему. Вот мой код, и он отлично работает, когда я пробую его на localhost, но когда я загружаю свой сайт, у моего текста нет <br />
. Почему это может произойти? И как я могу исправить эту проблему с помощью новых строк? (white-space: pre-line;
не является для меня решением, он не работает на IE6, и он возится с моими стилями)
@Html.Raw(Html.Encode(Model.Body)
.Replace(Environment.NewLine, "<br />"))<br />
Ответы
Ответ 1
Как указано в комментариях к BuildStarted, браузеры могут либо отправить \r\n
, либо \n
, что будет ломаться, если вы используете Environment.NewLine
- и я не думаю, что asp.net исправит это до запуска вашего код.
Я бы предложил использовать регулярное выражение вместо замены строк: "\\r?\\n"
Это должно совпадать с обоими случаями (я не ожидаю, что какой-либо браузер действительно будет использовать только "\ r" ).
Ответ 2
Я считаю, что этот ответ лучше всего:
fooobar.com/questions/16706/...
string result = Regex.Replace(input, @"\r\n?|\n", "<br />");
Ответ 3
С IE6 произошло много событий (слава богу!), поэтому я хотел бы упомянуть решение CSS для проблемы.
В вашем С#:
ViewBag.StringText = "some text" + Environment.NewLine + "more text in a new line";
В вашем CSS:
.newlines {
white-space:pre-line;
}
В вашей бритве:
<div class="newlines">@ViewBag.StringText</div>
Ответ 4
Вместо использования Environment.NewLine
попробуйте следующее:
someString.Replace(@"\r\n", "<br/>");