【问题标题】:Forcing a new line for text in one <td>强制在一个 <td> 中为文本换行
【发布时间】:2014-01-07 21:39:28
【问题描述】:

我已经搜索了大约 20 分钟,没有运气回答这个问题。我非常感谢任何人对此的意见。

我在表格行中有一个单元格 (td),该单元格大部分时间将包含一行文本,但偶尔会包含两行(它包含的确切文本取决于服务器端处理) .如果将一行的文本混合在一起并环绕,我并不介意,但如果添加第二行,我需要能够开始新行。因此我尝试使用下面的换行符。

我真的不能把它分成两个&lt;td&gt; 元素,当我将它们包含在文本服务器端时,我似乎无法让\n&lt;br/&gt; 工作。如果我这样做,它们只会在单元格内呈现为纯文本。

本质上,我希望能够避免使用 javascript 客户端分析文本以添加特殊字符。我什至不确定这是否可行。是否有一些 css/html/javascript/jquery 技巧可以完成这项工作?

构建文本的 C# 代码很简单,这里有一个例子:

    caseDueDate = "Reading Response due: " + readingDueDate.ToString();

该字段的 Razor 代码如下所示:

    <td>@Model.patients.ElementAt(ii).CaseDue</td>

返回结果的正确性很好。 T'只是格式... =)

【问题讨论】:

  • 请贴一些代码。

标签: javascript html asp.net css


【解决方案1】:

听起来像是在代码中的某个位置将您的 &lt;br /&gt; 标记转换为 htmlentities,因为这些不应在 html 输出中呈现为纯文本。

您的输出是否包含在 htmlentities() 调用或类似调用中?

【讨论】:

  • 你说得对,这可能会发生。该属性作为 Razor 字段 (dotnet mvc) 内的值返回。我会相应地更新我的问题。
  • 检查这个stackoverflow.com/questions/5073789/… ...听起来你需要用剃刀将模型包装在@Html.Raw()中
  • 谢谢您,先生。这就像一种魅力,正是我想要的!
【解决方案2】:

带有 TD 的 BR 标记应该可以工作...服务器端代码可能会自动转义 html 以防止跨站点脚本。根据所使用的特定服务器软件,有不同的方法可以选择性地禁用此功能。

【讨论】:

    【解决方案3】:

    您在服务器上使用 ASP.NET MVC,对吗?

    如果你想在服务器端手动控制换行符的使用,我会想到两个选项:

    (1) 您可以为 CaseDue 属性编写一个显示模板(局部视图)。如果你用 UIHint 属性标记你的模型,像这样:

    [UIHint("MyPartialView")]
    public string CaseDue { ... }
    

    ... 然后在您的视图中使用 HtmlHelper,例如:

    @Html.DisplayFor(m => m.patients.ElementAt(index).CaseDue)
    

    (2) 您可以为 HtmlHelper 类编写扩展方法,该方法创建并返回 MvcHtmlString 的实例。 Razor 不对这些进行编码,因此您可以在返回值中包含您想要的任何标签。例如,大致:

    public static MvcHtmlString TdForCaseDue(this HtmlHelper html, string[] lines) {
        TagBuilder td = new TagBuilder("td");
        td.InnerHtml = lines[0];
        for(int i = 1; i < lines.Length; i++) {
            td.InnerHtml += (new TagBuilder("br").ToString());
            td.InnerHtml += lines[i];
        }
        return new MvcHtmlString(td.ToString());
    }
    

    【讨论】:

    • 好消息!这次我没有使用任何它,但我相信我将来会使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2017-12-19
    相关资源
    最近更新 更多