MVCContrib Grid - 显示回车

时间:2011-07-06 20:24:41

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

如何在MVCContrib Grid中显示回车?我已尝试使用"<br>"替换回报,但实际上我的展示<br>中显示了"test<br>test"

<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”?

1 个答案:

答案 0 :(得分:5)

您可以使用自定义列:

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

但更安全的IMHO更强大的解决方案是使用自定义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");