【问题标题】:MVCContrib Grid - Show carriage returnsMVCContrib Grid - 显示回车
【发布时间】:2011-07-06 20:24:41
【问题描述】:

如何在 MVCContrib 网格中显示回车?我尝试用"<br>" 替换退货,但这实际上在我的显示器"test<br>test" 中显示<br>

<div id="noteList">
    @Html.Grid(Model).Columns(column => {
        column.For(x => x.TimeStamp);
        column.For(x => x.UserName);
        column.For(x => x.Note.Replace("\r\n","\"<br>\"")).Named("Note");
        }).Attributes(Style => "text-aligh: center", @Class => "linkGrid")
</div>

有没有办法让浏览器呈现原始返回的“\r\n”?

【问题讨论】:

    标签: asp.net-mvc-3 mvccontrib-grid


    【解决方案1】:

    您可以使用自定义列:

    column.Custom(item => @item.Note.Replace("\r\n", "<br/>")).Named("Note");
    

    但恕我直言,更安全和更强大的解决方案是使用自定义 HTML 帮助器:

    public static class HtmlExtensions
    {
        public static IHtmlString FormatNote(this HtmlHelper html, string note)
        {
            if (string.IsNullOrEmpty(note))
            {
                return MvcHtmlString.Empty;
            }
            var lines = note.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
            return MvcHtmlString.Create(string.Join("<br/>", lines.Select(x => html.Encode(x))));
        }
    }
    

    然后:

    column.Custom(item => Html.FormatNote(item.Note)).Named("Note");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 2011-04-25
      相关资源
      最近更新 更多