Si bien Microsoft ha creado una representación automática de los atributos html en la maquinilla de afeitar MVC4, me llevó bastante tiempo descubrir cómo representar una segunda clase css en un elemento, basada en una expresión de maquinilla condicional. Me gustaría compartirlo contigo.
Basado en una propiedad de modelo @ Model.Details, quiero mostrar u ocultar un elemento de la lista. Si hay detalles, se debe mostrar un div; de lo contrario, se debe ocultar. Usando jQuery, todo lo que necesito hacer es agregar un show u ocultar clase, respectivamente. Para otros fines, también quiero agregar otra clase, "detalles". Entonces, mi margen de beneficio debería ser:
<div class="details show">[Details]</div>
o <div class="details hide">[Details]</div>
A continuación, muestro algunos intentos fallidos (marcado resultante suponiendo que no hay detalles).
Este: <div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")>
,
esto hará que: <div class="details" hide="">
.
Esta: <div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")>
.
esto hará que: <div class=""details" hide"="">
.
Esta: <div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")>
esto hará que: <div class="'details" hide'="">
.
Ninguno de estos son marcas correctas.