Salut,

Nous avons besoin d'utiliser des dropdownlist.
Nous avons créé le code suivant :

Contrôleur
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
59
 
        // **************************************
        // URL: /Account/Register
        // **************************************
        //[Authorize(Roles="Admin")]
        public ActionResult Register()
        {
            return View(PrepareRegisterModel());
        }
 
        private RegisterModel PrepareRegisterModel()
        {
            RegisterModel toReturn = new RegisterModel();
            GroupPurchasePortalRepositories _context = new GroupPurchasePortalRepositories();
            using (_context)
            {
                var genresList = _context.Genre_Rep.GetAll().OrderBy(g => g.SortIndex).ToList();
                List<SelectListItem> availableGenres = new List<SelectListItem>();
                foreach (var g in genresList)
                {
                    availableGenres.Add(
                        new SelectListItem()
                        {
                            Selected = false,
                            Value = g.Id.ToString(),
                            Text = g.Name
                        }
                        );
                }
                availableGenres.Insert(0, new SelectListItem() { Selected = true, Value = GroupPurchasePortal.Layers.DataLayer._DataLayer_Base.ddlNotSetItemId.ToString(), Text = string.Empty });
                ViewBag.PasswordLength = MembershipService.MinPasswordLength;
                toReturn.Genres = availableGenres;
            }
            return toReturn;
        }
 
        [HttpPost]
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email);
 
                if (createStatus == MembershipCreateStatus.Success)
                {
                    FormsService.SignIn(model.UserName, false /* createPersistentCookie */);
 
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus));
                }
            }
 
            // If we got this far, something failed, redisplay form
            return View(PrepareRegisterModel());
        }
Vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
            <div class="editor-label">
                @Html.LabelFor(m => m.Genre)
            </div>
            <div class="editor-field">
                @Html.DropDownListFor(m => m.Genre, (IEnumerable<SelectListItem>)Model.Genres)
                @Html.ValidationMessageFor(m => m.Genre)
            </div>
Model
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    public class RegisterModel
    {
        //Ajouts spécifiques
        public IEnumerable<SelectListItem> Genres { get; set; }
 
        [Display(Name = "Genre")]
        public IEnumerable<SelectListItem> Genre { get; set; }
        ...    
    }
Coté base, les genres ont un Id int et un name nvarchar(50)

Notre code ne fonctionne pas. On a testé pas mal d'options mais sans succès. Vous n'aurriez pas un exemple de liste déroulante qui fonctionne ?

D'avance merci

Laurent