在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起始标签

既然你使用的是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元素的开闭标签,那么就不需要使用转义字符。