Précédent   Forum du club des développeurs et IT Pro > Dotnet > Développement Web avec .NET > ASP.NET MVC
ASP.NET MVC Forum d'entraide sur le développement de site web avec le framework ASP.NET MVC.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/01/2013, 14h37   #1
Leaffy
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : novembre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 85
Points : 34
Points : 34
Par défaut Selection d'items dans une SelectList

Bonjour,

Je recontre actuellement quelques soucis en essayant de créer un formulaire d'enregistrement pour mon site web.

Quand je tombe sur ma page d'enregistrement (Account/Register) je tombe à chaque fois sur l'exception suivante:
Citation:
There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'Gender'.
Pour info j'ai une classe User qui possède la propriété:
Code :
public string Gender { get; set; }
J'ai du côté de mon AccountController la méthode suivante (que j'essaie de compléter):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[HttpPost]
        public ActionResult Register(string Gender, User user)
        {
            List<SelectListItem> genders = new List<SelectListItem>();
            genders.Add(new SelectListItem() { Text = "Homme" , Value = "Homme"});
            genders.Add(new SelectListItem() { Text = "Femme" , Value = "Femme"});
 
            ViewData["Gender"] = new SelectList(genders);
 
            if (ModelState.IsValid)
            {
                db.Users.Add(user);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
 
        }
Du côté de ma vue Register:
Code :
1
2
3
4
5
6
7
8
<div class="editor-label">
            @Html.LabelFor(model => model.Gender)
        </div>
        <div class="editor-field">
            @*@Html.EditorFor(model => model.Gender)*@
            @Html.DropDownList("Gender")
            @Html.ValidationMessageFor(model => model.Gender)
        </div>
Par quel moyen pourrais-je récupérer la sélection de l'utilisateur dans vue parmi les 2 sexes possibles, sans générer ce type d'exception, et ainsi l'ajouter à mon attribut de classe Gender?
Leaffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2013, 00h04   #2
Immobilis
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 6 403
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 6 403
Points : 7 091
Points : 7 091
Salut,

Tu peux lire ce post: http://stackoverflow.com/questions/7...a-and-tempdata.

En résumé: ne jamais utiliser ViewBag, ViewData, mais toujours des vues fortement typées et accéder aux propriétés de l'objet pour Binder sa vue.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h11.


 
 
 
 
Partenaires

Hébergement Web