【问题标题】:Preserve text line breaks to when collecting from database in ASP.NET MVC从 ASP.NET MVC 中的数据库收集时保留文本换行符
【发布时间】:2017-03-27 13:21:08
【问题描述】:

我对编程非常陌生,并且正在努力学习。我一直在为一个问题苦苦挣扎几个小时,却不明白自己做错了什么。

我的目标是将文本(有很多换行符的文章)保存到数据库中,然后检索文本并在编写时查看输出,并保留所有换行符。

文本是名为 KaseriInfo 的对象的一部分。

我已经阅读了一些关于此的主题并尝试了以下内容:

在保存到 Db 之前,我使用 inputText.Replace("\r\n", "<br />"); 从 Db 检索后,我使用 inputText.Replace("<br />", "\r\n");

我一直在以不同的方式与 .Replace-methods 混合,但我不会得到我想要的结果。

这是我使用本地网络服务添加到数据库的代码:

public bool AddKaseri(KaserierInfo kaseri)
    {
        bool successOrNot = false;
        Kaserier kaseriToBeAdded = new Kaserier();
        kaseriToBeAdded.Title = kaseri.Title;
        kaseriToBeAdded.Content = kaseri.Content.Replace("\r\n", "<br />");
        kaseriToBeAdded.About = kaseri.About;
        kaseriToBeAdded.Uploaded = DateTime.Now;

        db.Kaseriers.Add(kaseriToBeAdded);
        try
        {
            db.SaveChanges();
            successOrNot = true;
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        return successOrNot;
    }

这是从 Db 中检索数据的代码:

public KaserierInfo GetOneKaseri(int id)
    {
        var result = from row in db.Kaseriers
                     where row.Id == id
                     select row;

            KaserierInfo kaseri = new KaserierInfo();

        var kas = result.FirstOrDefault();
        if (kas != null)
        {
            kaseri.Id = kas.Id;
            kaseri.Title = kas.Title;
            kaseri.About = kas.About;
            kaseri.Content = kas.Content.Replace("<br />", "\r\n");
            kaseri.UploadedDateOnly = kas.Uploaded.ToString();
            kaseri.Uploaded = kas.Uploaded;
            kaseri.UploadedDateOnly = kaseri.Uploaded.ToLongDateString();
        }
        return kaseri;
    }

What is stored in the Db

由于某种原因,HTML 输出不会带有换行符。这是显示的内容:

Output on website

这是控制器内部的 C# 代码:

 public ActionResult ViewKaseri(int id)
    {
        //Getting the object from WS
        var kas = kasref.GetOneKaseri(id);
        //Moving to local object
        KaseriModel kaseri = new KaseriModel();
        kaseri.Id = kas.Id;
        kaseri.About = kas.About;
        kaseri.Title = kas.Title;
        kaseri.Content = kas.Content;
        kaseri.UploadedDateOnly = kas.UploadedDateOnly;        
        return View(kaseri);
    }

我很乐意解决这个问题,以便正确呈现换行符。请记住,我的技能很低。

最好的 /J

【问题讨论】:

  • 发布用于将数据注入 HTML 页面的代码。您还可以发布生成的标记...

标签: asp.net replace preserve


【解决方案1】:

您需要使用@Html.Raw()。这将允许您显示内容

【讨论】:

  • 谢谢。可能还有其他原因导致问题。我尝试使用 @Html.Rav(Model.Content) 但不幸的是输出看起来相同。
  • 你把它包裹在
     标签上了吗?
  • 最终我使用@Html.Rav() 让它工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 2023-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多