我试图在MVC项目中使用Dropdownlist列表,但出现了以下错误:
没有具有键Id的'IEnumerable‘类型的ViewData项
我的主计长
public ActionResult Register()
{
ViewData["CourseId"] = new SelectList(reg.tbl_Course, "Id", "Course");
return View();
}
[HttpPost]
public ActionResult Register( tbl_User user)
{
reg.tbl_User.Add(user);
reg.SaveChanges();
return View();
}在我看来,我的I使用了Dropdownlist列表的代码
@Html.DropDownList("CourseId",null , htmlAttributes: new { @class = "form-control" })我使用ViewBag和ViewData,但是我看到了同样的错误。请帮帮我
发布于 2020-05-06 06:08:45
假设模型如下所示:
public class CourseViewModel
{
public int Id { get; set; }
public string Course { get; set; }
}在您的控制器中:
[HttpGet]
public ActionResult Index()
{
var listOfCourses = new List<CourseViewModel>()
{
new CourseViewModel() {Id = 1, Course = "Course Name 1"},
new CourseViewModel() {Id = 2, Course = "Course Name 2"},
};
ViewData["CourseId"] = new SelectList(listOfCourses, "Id", "Course");
return View();
}在您中,.cshtml只需使用:
@Html.DropDownList("CourseId")结果:

发布于 2020-05-08 19:48:15
我认为您的错误是视图数据需要是IEnumerable<SelectListItem>
尝试类似于控制器中的内容:
ApplicationDbContext db = new ApplicationDbContext();//gets db context
List<SelectListItem> users = new List<SelectListItem>();//creating list of select list items
var userList = db.Users.ToList();//geting list of users
foreach (var user in userList)
{
users.Add(new SelectListItem() { Value = user.Id, Text = user.UserName});//populating select list with items
}
ViewData.Add("ApplicationUserId",users.AsEnumerable());//adding list to view data
return View();从以下角度来看:
@Html.DropDownListFor(model => model.ApplicationUserId, null, htmlAttributes: new { @class = "form-control" })https://stackoverflow.com/questions/61628154
复制相似问题