[英]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>');
现在,这可能不会编译,只是一个基本的想法。
它应该编译。 只是一个难看的布局。
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.