【问题标题】:Line breaks on varchar2 not displayingvarchar2 上的换行符不显示
【发布时间】:2014-03-29 04:00:49
【问题描述】:

我正在开发一个 ASP.NET MVC C#,其中 Entity Framework 作为我的 ORM,Oracle 作为我的数据库。

我有一个表,其中有一个名为Bodyvarchar2 类型的列。该表只有一条记录,在该记录中,Body 列有:

Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Vivamus nec nunc vitae diam suscipit convallis。 Nunc id sapien justo。 Nulla pellentesque, lacus non congue feugiat, sem nisi bibendum nulla, nec pellentesque sem sem eget lorem。

Pellentesque blandit, felis sit amet malesuada fringilla, metus risus bibendum magna, ut scelerisque nisi tellus nec lacus。

但是当我在我的网页上显示该记录的内容时,我得到:

Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Vivamus nec nunc vitae diam suscipit convallis。 Nunc id sapien justo。 Nulla pellentesque, lacus non congue feugiat, sem nisi bibendum nulla, nec pellentesque sem sem eget lorem。 Pellentesque blandit、felis sit amet malesuada fringilla、metus risus bibendum magna、ut scelerisque nisi tellus nec lacus。

不解释换行符!这是什么原因造成的?我该如何解决这个问题?

我的控制器的代码如下:

public ActionResult PreviewEmail(int id)
{
    var campaign = _campaignService.OpenById(id);
    var emailTemplate = _commsService.GetEmailWithSeverity(campaign.Severity.ToString());
    var model = new EmailVM()
    {
        CampaignRef = campaign.Reference,
        Body = emailTemplate.Body
    };
    return View(model);
}

【问题讨论】:

    标签: c# asp.net oracle entity-framework


    【解决方案1】:

    浏览器通常将所有空格显示为一个空格。

    如果您将所有换行符替换为 <br />,则换行符将显示为(行/节)换行符。

    您可能希望在代码的表示层中进行替换。

        Body = emailTemplate.Body.Replace("\n", "<br />");  
    

    【讨论】:

    • 除了@Klas建议的,在oracle端,也可以实现SELECT replace(Body, chr(10), '&lt;br /&gt;') from ....
    • 谢谢你们,效果很好,但在我看来,我还必须使用@Html.Raw(Model.Body) 才能让 Razor 呈现 HTML。
    猜你喜欢
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多