Microsoft はrazor MVC4で html 属性の自動レンダリングをいくつか作成しましたが、条件付きの razor 式に基づいて、要素で 2 番目の css クラスをレンダリングする方法を見つけるのにかなりの時間がかかりました。あなたとそれを共有したいと思います。
モデル プロパティ @Model.Details に基づいて、リスト アイテムを表示または非表示にしたい。詳細がある場合は div を表示し、そうでない場合は非表示にする必要があります。jQuery を使用して、表示または非表示のクラスをそれぞれ追加するだけです。他の目的のために、「details」という別のクラスも追加したいと考えています。したがって、私のマークアップは次のようになります。
<div class="details show">[Details]</div>
また<div class="details hide">[Details]</div>
以下に、失敗した試行をいくつか示します (詳細がない場合の結果のマークアップ)。
これ: <div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")>
,
これをレンダリングします: <div class="details" hide="">
.
これ: <div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")>
.
これをレンダリングします: <div class=""details" hide"="">
.
これ:<div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")>
これをレンダリングします: <div class="'details" hide'="">
.
これらはどれも正しいマークアップではありません。