Microsoft がかみそりMVC4 でHTML属性のオートマジックレンダリングを作成しましたが、条件付きかみそり式に基づいて、要素に2番目のCSSクラスをレンダリングする方法を見つけるのにかなりの時間がかかりました。共有したいと思います。
モデルプロパティ@ Model.Detailsに基づいて、リストアイテムを表示または非表示にします。詳細がある場合はdivを表示し、それ以外の場合は非表示にする必要があります。jQueryを使用して、クラスshowまたはhideをそれぞれ追加するだけで済みます。他の目的のために、「詳細」という別のクラスも追加したいと思います。だから、私のマークアップは:
<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'="">
。
これらはどれも正しいマークアップではありません。