188 votes

Comment ajouter une deuxième classe css avec une valeur conditionnelle dans razor MVC 4

Alors que Microsoft a créé quelques rendu automatique des attributs html dans razor MVC4, il m'a fallu pas mal de temps pour trouver comment rendre une seconde classe css sur un élément, en fonction d'une expression conditionnelle de razor. J'aimerais le partager avec vous.

Sur la base d'une propriété de modèle @Model.Details, je veux afficher ou masquer un élément de liste. S'il y a des détails, un div doit être affiché, sinon, il doit être caché. En utilisant jQuery, tout ce que je dois faire est d'ajouter une classe show ou hide, respectivement. Pour d'autres raisons, je veux également ajouter une autre classe, "details". Donc, mon balisage devrait être le suivant :

<div class="details show">[Details]</div> o <div class="details hide">[Details]</div>

Ci-dessous, je montre quelques tentatives ratées (le balisage résultant suppose qu'il n'y a pas de détails).

Ceci : <div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")> ,

rendra ceci : <div class="details" hide=""> .

Ceci : <div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")> .

rendra ceci : <div class=""details" hide&quot;=""> .

Ceci : <div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")>

rendra ceci : <div class="'details" hide&#39;=""> .

Aucun de ces éléments n'est une majoration correcte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X