在 ASP.NET MVC 中从数据库收集时保留文本换行符
Preserve text line breaks to when collecting from database in ASP.NET MVC
我对编程还很陌生,正在努力学习。几个小时以来,我一直在为一个问题苦苦挣扎,却不明白自己做错了什么。
我的目标是将文本(有很多换行符的文章)保存到数据库,然后检索文本并查看写入时的输出,并保留所有换行符。
文本是名为 KaseriInfo 的对象的一部分。
我已经阅读了一些与此相关的主题并尝试了以下方法:
在保存到 Db 之前我使用 inputText.Replace("\r\n", "<br />");
从 Db 检索后,我使用 inputText.Replace("<br />", "\r\n");
我一直在以不同的方式混合使用 .Replace 方法,但我得不到我想要的结果。
这是我使用本地网络服务添加到数据库的代码:
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.Raw()。这将允许您显示内容
我对编程还很陌生,正在努力学习。几个小时以来,我一直在为一个问题苦苦挣扎,却不明白自己做错了什么。
我的目标是将文本(有很多换行符的文章)保存到数据库,然后检索文本并查看写入时的输出,并保留所有换行符。
文本是名为 KaseriInfo 的对象的一部分。
我已经阅读了一些与此相关的主题并尝试了以下方法:
在保存到 Db 之前我使用 inputText.Replace("\r\n", "<br />");
从 Db 检索后,我使用 inputText.Replace("<br />", "\r\n");
我一直在以不同的方式混合使用 .Replace 方法,但我得不到我想要的结果。
这是我使用本地网络服务添加到数据库的代码:
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.Raw()。这将允许您显示内容