Bonjour.
Je suis entrain de modifier le controleur par d�faut d'une appli MVC pour inter r�agir avec mes tables aussi (je stocke plus d'informations)....

Mais voila j'ai une erreur que je n'arrive pas � bien g�rer...

Dans mon controleur:

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
/Account/Register
public ActionResult Register()
        {
            IDepartmentRepository depts = new DepartmentRepository();
            IEnumerable<SelectListItem> departments = depts.GetAllDepartments()
                            .Select(d => new SelectListItem
                            {
                                Value = d.dept_id.ToString(),
                                Text = d.dept_name
                            });
 
            IProgrammeRepository progs = new ProgrammeRepository();
            IEnumerable<SelectListItem> programmes = progs.GetAllProgrammes()
                            .Select(p => new SelectListItem
                            {
                                Value = p.prog_id.ToString(),
                                Text = p.prog_name
                            });
 
            ViewData["user_type"] = new SelectList(new[]
                                                    {
                                                        new { ID = "stud", Name = "Student" },
                                                        new { ID = "prof", Name = "Professor" },
                                                    }, "ID","Name", "stud"
                                                 );
 
            ViewData["dept_id"] = departments;
            ViewData["prog_id"] = programmes;
 
            ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
            return View();
        }
[HttpPost]
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Try registering user
                MembershipCreateStatus createStatus = 
                    MembershipService.CreateUser(model.UserName, model.Password, model.Email, model.FirstName,
                        model.LastName,model.RollNo, model.PhoneNo, model.DeptId, model.ProgId, model.Type);
 
                if (createStatus == MembershipCreateStatus.Success)
                {
                    FormsService.SignIn(model.UserName, false /* createPersistentCookie */);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus));
                }
            }
 
            // if we got here, something failed so we reload the form
            ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
            return View(model);
        }
Dans ma vue j'ai �a:

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
 
<div class="editor-label">
                <%: Html.LabelFor(model => model.Type) %>
            </div>
 
            <div class="editor-field">
                <%: Html.DropDownListFor(model => model.Type, ViewData["user_type"] as SelectList ) %>
            </div>
La vue s'affiche correctement mais quand je veux enregistrer un utilisateur, j'ai l'erreur suivante:

L'�l�ment ViewData qui a la cl� 'Type' est de type 'System.String', mais doit �tre de type 'IEnumerable<SelectListItem>'.
Je comprends bien l'erreur mais ne vois pas comment la r�soudre...(je suis newbie en asp.net mvc)...