Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制在一行中为文本添加新行<;td>;_Javascript_Html_Asp.net_Css - Fatal编程技术网

Javascript 强制在一行中为文本添加新行<;td>;

Javascript 强制在一行中为文本添加新行<;td>;,javascript,html,asp.net,css,Javascript,Html,Asp.net,Css,我已经搜索了大约20分钟,没有幸运地回答这个问题。我非常感谢任何人在这方面的意见 我在一个表行中有一个单元格(td),该单元格大部分时间将包含一行文本,但偶尔会包含两行(它包含的确切文本取决于服务器端处理)。我不太介意一行的文本被拼凑在一起并环绕,但是如果添加了第二行,我需要能够开始新的一行。因此,我尝试使用下面的换行符 我真的无法将其分解为两个元素,而且当我将\n或包含在文本服务器端时,它们似乎无法正常工作。如果我这样做,它们就会在单元格内呈现为纯文本 本质上,我希望能够避免使用javascr

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

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

我真的无法将其分解为两个
元素,而且当我将
\n

包含在文本服务器端时,它们似乎无法正常工作。如果我这样做,它们就会在单元格内呈现为纯文本

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

构建文本的C代码非常简单,下面是一个示例:

    caseDueDate = "Reading Response due: " + readingDueDate.ToString();
字段的Razor代码如下所示:

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

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

听起来好像有什么东西在代码中的某个点将

标记转换为htmlentities,因为这些标记在html输出中不应呈现为纯文本


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

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

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

如果要手动控制服务器端换行符的使用,请记住两个选项:

(1) 您可以为CaseDue属性编写显示模板(局部视图)。如果使用UIHint属性标记模型,如下所示:

[UIHint("MyPartialView")]
public string CaseDue { ... }
。。。然后在视图中使用HtmlHelper,例如:

@Html.DisplayFor(m => m.patients.ElementAt(index).CaseDue)
(2) 您可以为HtmlHelper类编写一个扩展方法,该类创建并返回MvcHtmlString的实例。Razor不会对这些进行编码,因此您可以在返回值中包含您想要的任何标记。e、 例如,大约:

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());
}
public static MvcHtmlString TdForCaseDue(此HtmlHelper html,字符串[]行){
标记生成器td=新标记生成器(“td”);
td.InnerHtml=行[0];
对于(int i=1;i
请发布一些代码。这可能会发生,你是对的。属性将作为Razor字段(dotnet mvc)中的值返回。我将相应地更新我的问题。请检查此。。。听起来你需要用@Html.Raw()来包装你的模型,先生。这就像一个魅力,正是我所寻找的!好消息!这次我没有使用任何一个,但我相信我将来会用的。