繁体   English   中英

如何删除换行符

[英]How to remove line breaks

我只是不明白为什么输出无法正确显示

这是我的查看代码

@model IEnumerable<TheSite.Post>
@{
    ViewBag.Title = "Index";
    Layout = null;
}
document.write('<table>

@foreach (var p in Model)
{
    <tr>
        <td>
            <a href="@p.Url">@p.Title</a>
        </td>
    </tr>
}

</table>');

这是输出:

document.write('<table>

    <tr>
        <td>
            <a href="http://www.test.com">test</a>
        </td>
    </tr>

</table>');

这是我需要的输出:

document.write('<table><tr><td><a href="http://www.test.com">test</a></td></tr></table>');

我尝试使用stringbuilder,但输出已转义。

View Engine保留换行符和空格以创建清晰的HTML。

我不明白为什么希望自动删除它们,但是简单的想法是不要首先插入它们:

  document.write('<table> @foreach (var p in Model){<tr><td> ... }</table>');

现在,这可能不会编译,只是一个基本的想法。
它应该编译。 只是一个难看的布局。

使用StringBuilder构建并使用:

@Html.Raw(builder.ToString())

MSDN上的HTML.Raw

Henk在注释中有正确的想法,只需将其放入字符串即可。

除非如此,否则您可以尝试使用“替换”。

document.write(mystring.Replace("\n","");

您可以将@Html.Raw()@Html.Raw()一起使用,以避免转义html字符。 您可以在每个html行上附加“ \\”字符,以在js中转义新行,但是我不建议这样做。 相反,我会使用“ +”

document.write('<table>' + 
 @foreach (var m in Model) {
   '<tr><td>@m</td></tr>'
 }
 + '</table>');

或者,您可以编写一个帮助程序方法,该方法将返回IHtmlString的实例(类似于return new HtmlString(yourStringBuilder.ToString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM