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.NET Core - Model : de la vue vers le controller [Débutant]


Sujet :

ASP.NET MVC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut ASP.NET Core - Model : de la vue vers le controller
    Bonjour,

    Dans ma vue, j'utilise un model : @model projet.Dto.DTOxxx qui est bien initialisé grace à mon controller.

    Je voudrais renvoyer ce model au controller lorque je clique sur un lien : <a asp-action="Details" asp-route-liste="@Model">Détails de @Model.titre</a>.

    Mais dans mon controller, la liste arrive toujours null, comme si le model n'était pas initialisé :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            public async Task<IActionResult> Details(DTOxxx liste)
            {
                return View(liste);
            }

    Comment renvoyer le model tel qu'il est reçu en entrée dans la vue ?

  2. #2
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 899
    Points : 1 916
    Points
    1 916
    Par défaut
    J'ai du mal à comprendre l'idée des détails d'une liste ; on affiche une liste ou les détails d'un item de la liste, mais les pas détails de la liste, justement.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Je veux simplement renvoyer au controller le model reçu en entrée.

  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
    Pour renvoyer le model il faudrait déjà poster des valeurs non ? De ce que je vois tu ne fais qu'une redirection...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Merci Dokho1000.

    Précisément, j'affiche plusieurs boutons sur ma page.
    Pour chacun, je veux poster le model reçu en entrée qui contient toutes les valeurs dont j'ai besoin et l'id qui me permet de repérer le bouton qui a été cliqué.
    J'ai fait une boucle pour initialiser mes boutons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @for (int i = 0; i < @Model.maliste.Count(); i++)
    {
       <form asp-controller="MonController" asp-action="MaFonction">
          <div asp-validation-summary="ModelOnly"></div>
             <input asp-for="@Model.id" class="form-control" value="@Model.maliste[i].id" />
             <input type="submit" value="Maj" class="btn btn-primary pull-right" />
          </div>
       </form>
    }
    Avec ce code, je reçois dans mon controller la valeur de l'id mais le reste du model est null.

    J'ai tenté de faire une boucle à l’intérieur de chaque form pour initialiser le modèle sur chacun des boutons, cela fonctionne mais le temps de chargement de la page est rédhibitoire !

    J'ai besoin de vos conseils. Merci d'avance.

  6. #6
    Membre habitué Avatar de Joel Pinto Ribeiro
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 95
    Points : 145
    Points
    145
    Par défaut
    Une fois ton model passé a la vue , il n'est plus possible de recuperer les valeurs d'avant sauf si les met quelque part dans le html , chose que tu avait fait ton id . Par contre tout le reste est perdu car on est dans un monde http .
    Si tu veux garder en memoire un objet en entier et que tu as une bonne raison de le faire passe par une variable de session.
    Jeune ingénieur passionné des technologies Microsoft .NET, ainsi que du partage de connaissances.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Merci Joël, je vais creuser cette piste.

  8. #8
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 899
    Points : 1 916
    Points
    1 916
    Par défaut
    L'approche me paraît erronée. Dans ta liste tu n'as pas besoin de passer par des boutons et formulaires pour aller vers les détails, un simple hyperlien, créé notamment avec Html.ActionLink() peut suffire. Et dans l'action Details tu n'as pas besoin de passer un modèle, puisque justement tu veux afficher ces informations ; l'id seul est nécessaire , tu récupères tout le reste dans le contrôleur depuis la base, grâce à l'id.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Etat vue vers Zone mémoire
    Par rippoz dans le forum WinDev
    Réponses: 5
    Dernier message: 30/10/2007, 10h57
  2. connaitre le chemin absolu des vues d'un controller
    Par Louis-Guillaume Morand dans le forum Zend Framework
    Réponses: 4
    Dernier message: 27/09/2007, 16h44
  3. Extraire une vue vers un fichier
    Par CrazySeb dans le forum MySQL
    Réponses: 1
    Dernier message: 14/07/2007, 15h49
  4. Réponses: 4
    Dernier message: 28/06/2007, 17h25
  5. [Oracle 9i] Export d'une vue vers une table.
    Par Cyborg289 dans le forum Oracle
    Réponses: 3
    Dernier message: 14/06/2006, 20h36

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