0

2 つの要素が true のときにHTMLdivタグをループ表示したい。forしたがって、次のように開始を表示する必要がありますdiv

*.chtml below
Html.Raw("<div class=\"additional-options clearfix\" style=\"display: block;\">");  

もう一方の要素が true の場合に終了タグを表示します。

その結果、div は HTML で出力されません。

他の解決策はありますか?

4

2 に答える 2

2

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 からコードへのエスケープ (または、場合によっては再び元へのエスケープ) に必ず を使用してください。

于 2013-05-16T18:21:26.040 に答える
1

また、終了タグのないプレーン テキストまたは 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 要素がある場合、エスケープ文字を使用する必要はありません。

于 2013-05-16T19:32:30.170 に答える