IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

Asp mvc 5 condition dans une view


Sujet :

ASP.NET MVC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 92
    Points : 33
    Points
    33
    Par défaut Asp mvc 5 condition dans une view
    Bonjour,

    J'ai un tableau qui liste des messages, je voudrais faire en sorte de mettre en avant les lignes dont le message n'est pas encore lu.
    J'ai essayé cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (!item.Vu)
        {
            ViewBag.vu = "active";
        }
        else
        {
            ViewBag.vu = "";
     
        }
    <tr  class=@ViewBag.vu>
    Mais il me met la class="active" partout.... bien sur ce morceau de code et mis dans une boucle foreach et item correspond a un message à la fois.

    Quelqu'un aurait une idée?

    Merci

  2. #2
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Bonjour,

    Le code que tu as fourni n'est pas suffisant pour te donner une piste de solution. Pour être en mesure de t'aider, il faudra que tu fournisses plus d'information.

    On aura besoin probablement tout le code de l'action qui exécuté, tout comme la logique qui d'initialiser ton tableau liste des messages.

    Si tu ne souhaites pas fournir plus d'information, il faudra mettre débogueur pour vérifier le contenu de ton tableau de messages à la suite de l'initialisation ou tout autre traitement avant l'appel de méthode qui permet de parcourir ce dernier, pour vérifier si les données sont déjà cohérentes avec qui sont attendues.

    Bon courage!
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Déjà je ne comprends pas pourquoi tu utilises le viewBag, normalement il est fait pour transférer les données entre le controller et la vue, il a une portée sur toute la vue.
    Personnellement ce que je ferai c'est que dans la classe qui correspond à l'objet item je rajouterai une propriété en lecture myClass que j'alimenterai tel que tu l'as fais dans ta vue.

    Du coup, dans ta vue tu n'aurais que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr  class="@item.myClass">
    Pour que ce soit propre il faut bien évidemment que la classe qui correspond à l'objet item soit un viewModel, car on ne peut pas rajouter des informations d'affichage dans un modèle métier.

    Une autre option serait de passer par une classe static Converter qui transformerai un booléen en nom de classe css.

    Cordialement
    Soazig

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Citation Envoyé par soazig Voir le message
    Bonjour,
    Déjà je ne comprends pas pourquoi tu utilises le viewBag, normalement il est fait pour transférer les données entre le controller et la vue, il a une portée sur toute la vue.
    Personnellement ce que je ferai c'est que dans la classe qui correspond à l'objet item je rajouterai une propriété en lecture myClass que j'alimenterai tel que tu l'as fais dans ta vue.

    Du coup, dans ta vue tu n'aurais que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr  class="@item.myClass">
    Pour que ce soit propre il faut bien évidemment que la classe qui correspond à l'objet item soit un viewModel, car on ne peut pas rajouter des informations d'affichage dans un modèle métier.

    Une autre option serait de passer par une classe static Converter qui transformerai un booléen en nom de classe css.

    Cordialement
    Soazig
    ou plus simplement dans ta boucle. (le @{} ne sera p-e pas nécessaire en fonction de ta programmation)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @{
      string myClass = string.Empty;
      if(!item.VU){
        myClass = "active";
      }
    }
     
    <tr  class="@myClass ">
    Je ne suis pas fan de mettre dans un modèle de données des propriétés de représentation. Je préfère que ce soit la responsabilité de la vue

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Pour Dokho1000,
    Citation Envoyé par Dokho1000 Voir le message
    Je ne suis pas fan de mettre dans un modèle de données des propriétés de représentation. Je préfère que ce soit la responsabilité de la vue
    Dans le modèle, je suis d'accord, dans un view modèle cela ne me choque pas (j'avais bien précisé si c'est un view modele).
    sinon la solution de la variable définie dans la vue, peut marcher aussi.

    Cordialement
    Soazig

Discussions similaires

  1. Réponses: 14
    Dernier message: 26/08/2010, 04h21
  2. Introduire une condition dans une requete
    Par DeezerD dans le forum Langage SQL
    Réponses: 9
    Dernier message: 12/10/2004, 18h13
  3. Condition dans une requête
    Par fdloisel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2004, 16h55
  4. Réponses: 2
    Dernier message: 11/08/2004, 15h01
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo