Sementara Microsoft telah membuat beberapa render atribut html secara otomatis di MVC4 silet, saya butuh waktu cukup lama untuk mengetahui cara membuat kelas css kedua pada suatu elemen, berdasarkan pada ekspresi pisau cukur bersyarat. Saya ingin membaginya dengan Anda.
Berdasarkan properti model @ Model.Details, saya ingin menampilkan atau menyembunyikan item daftar. Jika ada detail, div harus ditampilkan, jika tidak, itu harus disembunyikan. Menggunakan jQuery, yang perlu saya lakukan adalah menambahkan pertunjukan kelas atau menyembunyikan, masing-masing. Untuk keperluan lain, saya juga ingin menambahkan kelas lain, "detail". Jadi, mark-up saya seharusnya:
<div class="details show">[Details]</div>
atau <div class="details hide">[Details]</div>
Di bawah ini, saya menunjukkan beberapa upaya gagal (mark-up yang dihasilkan dengan asumsi tidak ada detail).
Ini: <div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")>
,
akan membuat ini: <div class="details" hide="">
.
Ini: <div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")>
.
akan membuat ini: <div class=""details" hide"="">
.
Ini: <div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")>
akan membuat ini: <div class="'details" hide'="">
.
Tidak ada yang benar mark-up.