.Replace(Environment.NewLine, “
”) works on localhost but not when I upload my website to host

后端 未结 4 732
灰色年华
灰色年华 2021-02-12 20:14

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

相关标签:
4条回答
  • 2021-02-12 20:34

    Instead of using Environment.NewLine, try this:

    someString.Replace(@"\r\n", "<br/>");
    
    0 讨论(0)
  • 2021-02-12 20:54

    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>
    
    0 讨论(0)
  • 2021-02-12 20:58

    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).

    0 讨论(0)
  • 2021-02-12 20:58

    I believe this answer is best: https://stackoverflow.com/a/8196219/550975

    string result = Regex.Replace(input, @"\r\n?|\n", "<br />");
    
    0 讨论(0)
提交回复
热议问题