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 :

problème vues partielles dans un formulaire


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2005
    Messages : 26
    Par défaut problème vues partielles dans un formulaire
    Bonjour,

    J'ai un soucis lors de la validation d'un formulaire quand je veux rajouter plusieurs vues partielles à intérieurs.

    voici en gros mon code :

    j'ai une classe composer comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class Customer
    {
         public Int32 Id {get;set;}
         public String Name {get;set}
         public Address Address {get; set;}
    }
    Voici la partie du formulaire dans ma vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <% using (Html.BeginForm())
    { %>
       <%: Html.HiddenFor(model => model.Customer.Id)%>
       <%: Html.LabelFor(m => m.Customer.FirstName)%>
       <%: Html.TextBoxFor(m => m.Customer.FirstName)%>
     
       <%: Html.RenderPartial("DetailsAddress",Model.Address);%>
     
       <input class="input" type="submit" value="Valider" />
    <%}%>
    Et enfin la partie dans l'ascx DetailsAddress

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <%: Html.LabelFor(m => m.Number)%>
     <%: Html.TextBoxFor(m => m.Number)%>
     ...
    Le problème c'est que lorsque je valide mon formulaire, la partie sur l'adresse est vide car apparemment MVC ne récupère pas ce que je rajoute dans l'ascx.

    Si quelqu'un à une piste sur comment utiliser dans un formulaire des ascx, car je n'arrive pas à trouvé sur internet.

    Merci,

    PS : je suis en MVC 2

  2. #2
    Membre éprouvé
    Avatar de Crooby
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 65
    Par défaut
    Salut,

    je comprend pas pourquoi tu met les lambda m.Customer.X

    essaye ceux-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <% using (Html.BeginForm())
    { %>
       <%: Html.HiddenFor(model => model.Id)%>
       <%: Html.LabelFor(m => m.FirstName)%>
       <%: Html.TextBoxFor(m => m.FirstName)%>
     
       <%: Html.RenderPartial("DetailsAddress",Model.Address);%>
     
       <input class="input" type="submit" value="Valider" />
    <%}%>
    Et sinon peux-tu mettre le code de ton controller ?

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2005
    Messages : 26
    Par défaut
    Oui pardon pour les expressions lambdas c'est un copier coller foireux que je n'ai pas vu.

    le contrôleur n'a rien de spéciale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public ActionResult Register()
    {
       Customer c = new Customer()
       {
          Address = new Address()
       };
     
       return View(c);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [HttpPost]
    public ActionResult Register(Customer model)
    {
       //ici model.Nom vaut bien quelques choses mais model.Address vaut Null.
       return View(model);
    }

  4. #4
    Membre éprouvé
    Avatar de Crooby
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 65
    Par défaut
    Pour le contrôleur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public ActionResult Register()
    {
         Customer c = new Customer();
         return View(c);
    }
    Peux-tu mettre le code du controlleur qui reçoie le HttpPost ?

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2005
    Messages : 26
    Par défaut
    Je te l'ai mis dans le post d'avant.

    J'ai validé mon post avant d'avoir fini de l'écrire....

  6. #6
    Membre éprouvé
    Avatar de Crooby
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 65
    Par défaut
    Deux solution, je pense:

    1-
    Met le même typage de model pour l'aspx et l'asx

    Pour l'aspx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <%: Html.RenderPartial("DetailsAddress",Model);%>
    ...
    Pour l'ascx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%: Html.LabelFor(m => m.Address.Number)%>
     <%: Html.TextBoxFor(m => m.Address.Number)%>
     ...
    2-
    Pour l'ascx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%: Html.Label(Model.NumberOne)%>
     <%: Html.TextBox(Model.NumberTwo)%>
     ...
    Et le controlleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [HttpPost]
    public ActionResult Register(Customer model, string numberOne, string numberTwo)
    {
       // Ajouter au model les address
     
       //ici model.Nom vaut bien quelques choses mais model.Address vaut Null.
       return View(model);
    }

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

Discussions similaires

  1. Problème de superposition dans un formulaire
    Par vallica dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 17/01/2007, 15h20
  2. Problème de filtre dans un formulaire acess
    Par cdbaloo dans le forum Access
    Réponses: 4
    Dernier message: 31/03/2006, 17h25
  3. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2006, 14h38
  4. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 04/02/2006, 14h48
  5. problème de calcul dans un formulaire
    Par Bray02 dans le forum IHM
    Réponses: 1
    Dernier message: 07/12/2005, 11h45

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