DropDownListFor static asp.net mvc
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:
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:
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:
Citation:
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)...