Dans ma vue MVC, je souhaite utiliser un opérateur conditionnel pour afficher le nombre d'une variable même si elle est égale à 0 .
@foreach (var item in Model.TotalNumberProxy.LstFByTAndB) { <tr> @using (var db = new ConnectionStringName()) { <td>@db.code_VType.Find(item.Key).VType</td> } @for (var i = 1; i <= 12; i++) { <td> @(item.Count(x => x.tblFAM.CDate.Month == i) == 0 ? 0 : item.Count(x => x.tblFAM.CDate.Month == i)) </td> } <td>@item.Count()</td> </tr> }
Dans mon pour la boucle
, j'utilise l'opérateur conditionnel, mais je ne peux pas afficher 0
même si le nombre est 0 qui est mon instruction conditionnelle. Comment puis-je le faire afficher?
3 Réponses :
que diriez-vous de retourner string
, je veux dire
@(item.Count(x => x.tblFAM.CDate.Month == i).ToString())
Pourquoi compter deux fois la même condition, effectuer une conversion manuelle une fois et utiliser ToString ()
pour l'autre? Pourquoi y a-t-il besoin d'un opérateur ternaire ici?
IMO Il serait beaucoup plus facile d'encapsuler une grande partie de cela dans le contrôleur / modèle:
<tr> <td>@item.VType</td> @for (var i = 1; i <= 12; i++) { <td>@item.Columns[i]</td> } <td>@item.Count()</td> </tr>
Le code de la vue ressemblerait alors à:
@Html.DisplayFor(m => m.TotalNumberProxy.LstFByTAndB)
Pourquoi ne pas simplement renvoyer le résultat?
@item.Count(x => x.tblFAM.CDate.Month == i)
Vous n'avez même pas besoin de .ToString ()
car ASP.NET MVC l'appelle automatiquement lors de la sortie en HTML (voir l'appel ultérieur à
) ... @ item.Count ()
Cela semble être une énorme logique qui pourrait être encapsulée dans le contrôleur ou le modèle. La création de nouveaux modèles et autres devrait être extrêmement rare dans une vue MVC.
Pourquoi voudrais-tu? Si vous le comptez et qu'il vaut 0, vous imprimez explicitement 0 sinon comptez? mmm ...
Ne voyez-vous pas 0 dans l'interface utilisateur pour le moment?
@Grizzly que diriez-vous de la chaîne de retour, je veux dire "0" et Count (....). ToString ()
Je ne comprends pas pourquoi vous avez besoin de la condition, car le vrai chemin renvoie le résultat et le faux chemin renvoie le résultat après l'avoir calculé à nouveau.
@Grizzly que voyez-vous dans l'interface utilisateur lorsque le nombre est de 0?