Asp.net mvc 使用实体框架将数据库中的值绑定到MVC中的下拉列表

Asp.net mvc 使用实体框架将数据库中的值绑定到MVC中的下拉列表,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc 3,我正在尝试将数据库中的值绑定到视图中的下拉列表 我需要在视图的下拉列表中显示数据库值。我正在尝试将电子邮件id绑定到数据库表的下拉列表 在这里,我需要将电子邮件ID添加到下拉列表中。这是我的模型 public class UserDetails { public List<SelectListItem> Userdetails { get; set; } public string Email { get; set; } } 这是我的看法, @mode

我正在尝试将数据库中的值绑定到视图中的下拉列表

我需要在视图的下拉列表中显示数据库值。我正在尝试将电子邮件id绑定到数据库表的下拉列表

在这里,我需要将电子邮件ID添加到下拉列表中。这是我的模型

public class UserDetails
{
      public List<SelectListItem> Userdetails { get; set; }
      public string Email { get; set; }
}
这是我的看法,

   @model List<MVC_Sample.Models.UserDetails>

             <div class="dropdown">
               @Html.DropDownList("CategoryID", (SelectList)ViewBag.Categories, "--Select One--")

                </div>
@型号列表
@Html.DropDownList(“CategoryID”,(SelectList)ViewBag.Categories,“--Select One--”)

视图将加载下拉列表和数据库中的值。但不幸的是,我无法添加下拉列表中的值。我不知道我哪里做错了。有人能帮我吗?

由于其他用户在评论中向您咨询,问题可能是,
CategoryID
CategoryName
在thq
query

但是,我通常更喜欢将下拉列表绑定到
列表
,而不是绑定到
选择列表
,因为这样更容易创建强类型查询

我将更改控制器上的这些行:

var query = db.tblEmployees.Select(c => new { c.Email });
ViewBag.Categories = new SelectList(query.AsEnumerable(), "CategoryID", "CategoryName");
致:

致:

@Html.DropDownList(“CategoryID”,(List)ViewBag.Categories,“--选择一个--”)

什么是CategoryID和CategoryName??您确定
CategoryID
CategoryName
而不是
Email
作为文本和值字段作为
SelectList
传递查看吗?您可能想使用
ViewBag.Categories=new SelectList(query.AsEnumerable(),“Email”,“Email”)。您甚至没有将模型返回到视图,并且您的
@model List
毫无意义。是否要创建多个下拉列表(每个
UserDetails
)一个?您的查询毫无意义——它只返回一个属性,不包含属性
CategoryID
CategoryName
。你想在这里做什么?OP有一个属性
List Userdetails
,因此应该分配它,而不是
ViewBag
——并且在视图
@Html.DropDownListFor(m=>m.CategoryID,Model.Userdetails,“…”
var query = db.tblEmployees.Select(c => new { c.Email });
ViewBag.Categories = new SelectList(query.AsEnumerable(), "CategoryID", "CategoryName");
List<SelectListItem> query = db.tblEmployees.Select(c => new SelectListItem { Text = c.Email, Value = c.CategoryId }).toList();
ViewBag.Categories = query;
@Html.DropDownList("CategoryID", (SelectList)ViewBag.Categories, "--Select One--")
@Html.DropDownList("CategoryID", (List<SelectListItem>)ViewBag.Categories, "--Select One--")