在Razor视图块中显示HTML起始标签
本文关键字:HTML 标签 显示 Razor 视图 | 更新日期: 2023-09-27 18:13:52
当两个元素为真时,我想在for
循环中显示HTML div
标记。因此,我必须像这样显示开始的div
:
*.chtml below
Html.Raw("<div class='"additional-options clearfix'" style='"display: block;'">");
,当另一个元素为真时显示结束标签。
结果是div不会在HTML
中打印出来还有其他解决方案吗?
既然你使用的是Razor,你就应该能够直接编写HTML,如:
<body>
<span>This is some normal HTML</span>
@{
Boolean fork = true;
Int32[] numbers = new Int32[] {1,2,3,4,5,6};
if(fork)
{
<div>If fork is true, this will display</div>
foreach(Int32 number in numbers)
{
<span>@number</span>
<span>@HttpUtility.HtmlDecode("<Tag>This is a nonsense tag </Tag>")</span>
}
}
else
{
<div>If fork is false, this will display</div>
}
}
<span>This is more normal HTML</span>
</body>
请确保使用@{ }
从HTML转义到代码(或在某些情况下再次转义)。
另外,如果您需要打印没有结束标记的纯文本或html标记,则需要使用@:结构。例如:
<div>
@if (Model.IsTrue)
{
@:Statement is true.
@:<img src="/Images/cool.jpg" alt="" />
} else {
<span>Statement is not true.</span>
}
</div>
注意我需要使用@:来退出c#代码并进入HTML模式。然而,当我有一个HTML元素的开闭标签,那么就不需要使用转义字符。