【问题标题】:Carriage returns in html tablehtml表中的回车
【发布时间】:2014-06-11 18:09:47
【问题描述】:

我在 html 表中显示返回时遇到问题,它返回为一行。

我正在从 sql 2012 数据库中获取数据,但这很奇怪,因为当我在文本区域中编辑数据时,它会显示返回值。

有什么想法吗?

 public ActionResult Details(int id = 0)
    {
        WorkoutModel workoutmodel = db.WorkoutModels.Find(id);
        if (workoutmodel == null)
        {
            return HttpNotFound();
        }
        return View(workoutmodel.WorkoutDetails.Replace(System.Environment.NewLine, "<br />"));
    }

【问题讨论】:

  • 设置断点,看看workoutmodel.WorkoutDetails的值到底是什么
  • Environment.NewLine 有时会出现问题。我已经更新了解决方案。

标签: html sql asp.net html-table


【解决方案1】:

文本区域将正确显示返回,但您必须将返回解析为 HTML 中的中断。

如:

My text with a \r\nLine break.

变成:

My text with a <br />Line break.

【讨论】:

  • 我正在显示用户输入的数据,所以我想显示他们输入的返回值。我真的不能用大量
    编辑每一篇文章
  • @user3317526 您不需要编辑每个帖子。您只需在以 HTML 格式显示帖子时对其进行修改。参考我的回答。
  • 我编辑了我的帖子,向您展示我是如何尝试这样做的,但我没有运气
【解决方案2】:

在显示数据库中的数据时,您必须使用以下代码将换行符替换为 HTML 换行符。

return View(workoutmodel.WorkoutDetails.Replace("\r\n", "<br />")
                                       .Replace("\n", "<br />")
                                       .Replace("\r", "<br />"));

【讨论】:

    【解决方案3】:

    我走这条路是因为“\n”是跨主要操作系统(Windows \r\n、Mac 和 *nix \n)的换行符的一部分。它替换了 \n 字符并清除了任何可能遗留下来的 \r(并不是说它们通常会对 HTML 中留下的任何危害)。

    valueFromDb.Replace("\n", "<br />").Replace("\r", "");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      相关资源
      最近更新 更多