Dropdownlistfor невозможно установить на строку (MVC)
Привет Люди,
У меня есть эта проблема:
Я хочу поместить семейное положение в выпадающий список, когда я делаю регистрацию нового пользователя, и выбираю женат или не женат, и нажимаю на кнопку Сохранить, на моей БД я вижу, что он получил идентификатор (1, 2) вместо "женат" или "не женат".
Вот что я вижу на своей БД:
Смотрите изображения
What am I missing?
Что я уже пробовал:
В моей папке Счет -> AccountViewModels.в CS Я поставил эти коды:
public class RegisterViewModel { [Required] [Display(Name = "Etat civil")] [Range(1, 2, ErrorMessage = "Veuillez choisir")] public string Civilite { get; set; } public class EtatCivil { public int Id { get; set; } public string Libelle { get; set; } }
и дальше Контроллеры -> AccountController.в CS
// // GET: /Account/Register [AllowAnonymous] public ActionResult Register() { var lstEtat = new List<EtatCivil> { new EtatCivil {Id = 0, Libelle = "vide"}, new EtatCivil {Id = 1, Libelle = "Célibataire"}, new EtatCivil {Id = 2, Libelle = "Marié"} }; ViewBag.ListEtatCivil = new SelectList(lstEtat, "Id", "Libelle"); return View(); }
// // POST: /Account/Register [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Register(RegisterViewModel model) { if (!ModelState.IsValid) return View(model); var user = new ApplicationUser() { UserName = model.UserName }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { try { // ajout du user dans la table client using (var dal = new DALEF.WebShopEntities()) { dal.Client.Add( new DALEF.Client { CLI_Nom = model.Nom, CLI_Prenom = model.Prenom, CLI_Civilite = model.Civilite, CLI_Email = model.Email, CLI_Adresse = model.Adresse, CLI_CodePostal = model.CodePostal, CLI_Ville = model.Ville, CLI_Telephone = model.Telephone, CLI_AspUser_Id = user.Id }); dal.SaveChanges(); } } catch(Exception) { //await UserManager.DeleteAsync(user); ModelState.AddModelError("", "Echec création client, veuillez réessayer"); return View(model); } // on affecte le rôle client UserManager.AddToRole(user.Id, "client"); await SignInAsync(user, isPersistent: false); return RedirectToAction("Index", "Home"); } var lstEtat = new List<EtatCivil> { new EtatCivil {Id = 0, Libelle = "vide"}, new EtatCivil {Id = 1, Libelle = "Célibataire"}, new EtatCivil {Id = 2, Libelle = "Marié"} }; ViewBag.ListEtatCivil = new SelectList(lstEtat, "Id", "Libelle"); AddErrors(result); // If we got this far, something failed, redisplay form return View(model); }
На моем Просмотры --> Зарегистрироваться.cshtml по
<div class="form-group"> @Html.LabelFor(m => m.Civilite, new { @class = "col-md-2 control-label" }) <div class="col-md-10"> @Html.DropDownListFor(m => m.Civilite, (SelectList)ViewBag.ListEtatCivil) </div>