I have no idea why is that. Here is my code and it works perfectly when I try it on localhost but when I upload my website my text has no
\'s. Why this
Instead of using Environment.NewLine
, try this:
someString.Replace(@"\r\n", "<br/>");
A lot has happened since IE6 (thank god!) so I would just like mention the CSS solution to the problem.
In your C#:
ViewBag.StringText = "some text" + Environment.NewLine + "more text in a new line";
In your CSS:
.newlines {
white-space:pre-line;
}
In your Razor:
<div class="newlines">@ViewBag.StringText</div>
As BuildStarted mentioned in the comments, the browsers might either send \r\n
or \n
, which will break, if you use Environment.NewLine
- and I don't think asp.net will fix that up before running your code.
I'd suggest you use a regular expression to replace linebreaks instead: "\\r?\\n"
This should match both cases (I don't expect any browser to actually use '\r' only).
I believe this answer is best: https://stackoverflow.com/a/8196219/550975
string result = Regex.Replace(input, @"\r\n?|\n", "<br />");