Comment remplir dropdownlist pour MVC4 rasoir vues (C#)
Userprofile Modèle
[Table("Users")]
public class UserProfiles
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
//public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public string Initials { get; set; }
public string Company { get; set; }
public string Department { get; set; }
public string Title { get; set; }
public string Team { get; set; }
public string TeamSub { get; set; }
public string Phone { get; set; }
public string ImageLocation { get; set; }
public string Note { get; set; }
public string Comment { get; set; }
}
Contrôleur
public ActionResult Index()
{
**EDIT :** ViewBag.ProfileId = new SelectList(db.UserProfiles, "UserName", "UserName");
return View(db.UserProfiles.ToList());
}
Dans la Vue ( j'espère que /croire est ici la question )
@model IEnumerable<OilNGasWeb.Models.UserProfiles>
@{
ViewBag.Title = "CLS - Oil & Gas Web Site Users";
}
<h2>Web Site Users</h2>
**Removed** @Html.DropDownList(Model => Model.UserName,Model.UserName)
**Changedinto** @Html.DropDownList("UserName", String.Empty)
Nouvelle Erreur:
Exception Details: System.InvalidOperationException: There is no ViewData item of
type 'IEnumerable<SelectListItem>' that has the key 'UserName'.
Vous devez vous connecter pour publier un commentaire.
Ajouter un SelectList à votre
ViewBag
dans le Contrôleur:puis ajouter ceci dans votre point de Vue:
En outre, vous devriez avoir utilisé "modèle" au lieu de "Modèle" dans votre expression lambda.
ViewBag.ProfileId
parViewBag.UserName
dans votre cas. Le nom de votre ViewBag valeur doit être la même que celle de votre point de Vue.