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 :

Comment passer un viewmodel à un controller?


Sujet :

ASP.NET MVC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Comment passer un viewmodel à un controller?
    Bonjour,

    J'ai un problème pour passer un viewmodel à mon controller. Dans mon viewmodel, j'ai une liste, que je passe à ma vue avec un foreach pour afficher tous les item de ma liste.
    Quand j'envoie mon formulaire en httppost, ma liste est nulle.

    Voici mon code :

    Dans le viewmodel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     public class FormViewModel
        {
     
            public Customer Client { get; set; }
            public List<Customer> Contacts {get; set;}
    }

    Dans le controller, en HTTPGET :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          public ActionResult Client(string id)
            {
                FormViewModel VM = new FormViewModel(id);
     
                return View(VM);
            }
    Dans ma vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <% using (Html.BeginForm()) { %>
     
    <fieldset>
        <legend>Liste des contact</legend>
        <%foreach (var item in Model.Contacts)
          {%>
        Prénom :
        <%:Html.TextBoxFor(model => item.Firstname)%><br />
        Nom :
        <%:Html.TextBoxFor(model => item.Name)%><br />        
        <%} %>
    </fieldset>
     
    <input type="submit" />
    <% } %>
    Dans mon controller, en HTTPPOST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     [HttpPost]
            public ActionResult Index(FormViewModel VM) {
     
                return View();
     
            }
    Mon VM.Contacts est null...

    J'ai le problème à chaque fois que je fais un viewmodel avec une liste.
    C'est super handicapant pour développer, doit y avoir quelque chose que j'ai pas capté...

    J'espère que vous pourrez m'aider, je suis complètement bloquée dans mon projet.

  2. #2
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 61
    Points : 59
    Points
    59
    Par défaut Une réponse
    Bonjour Akawan,

    Dans ton contrôleur, tu appelle ton viewmodel en lui passant le Id en paramètre, mais tu ne l'a pas dans ton viewmodel.

    dans ton view model, que passe tu dans tes set? il me parraissent vide.

    Tu dois avoir crée une classe qui te permette de faire le CRUD
    tu devrais essayer ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class FormViewModel()
    {
        public customer client{get;set;}
        public list<customer> contact {get;set}
     
        public FormViewModel(int id)
        {
            customer customerRepository = new customerRepository();
            client = customerRepository.getById(id)
            contact = customer.getAll();
        }
    }
    CustomerRepository pourrait être ta classe permettant le CRUD.

    C'est une piste, à toi de l'exploiter .

    A plus tard

Discussions similaires

  1. [AC-2007] Comment passer un controle d'un formulaire dans ma fonction access
    Par jaug_456 dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/06/2012, 21h29
  2. Réponses: 1
    Dernier message: 28/09/2009, 15h54
  3. Comment passer un groupe de control en argument d'une fonction
    Par medkarim dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/10/2008, 13h42
  4. Réponses: 5
    Dernier message: 04/12/2007, 16h35
  5. Réponses: 4
    Dernier message: 18/10/2007, 15h16

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