HTML.Encode but preserve line breaks

前端 未结 5 1275
甜味超标
甜味超标 2021-02-01 13:48

I take user input into a text area, store it and eventually display it back to the user.

In my View (Razor) I want to do something like this...

@Message.         


        
5条回答
  •  误落风尘
    2021-02-01 14:01

    If you find yourself using this more than once it may be helpful to wrap it in a custom HtmlHelper like this:

    namespace Helpers
    {
        public static class ExtensionMethods
        {
            public static IHtmlString PreserveNewLines(this HtmlHelper htmlHelper, string message)
            {
                return message == null ? null : htmlHelper.Raw(htmlHelper.Encode(message).Replace("\n", "
    ")); } } }

    You'll then be able to use your custom HtmlHelper like this:

    @Html.PreserveNewLines(Message)
    

    Keep in mind that you'll need to add a using to your Helpers namespace for the HtmlHelper to be available.

提交回复
热议问题