C# 将实体框架创建的数据库中的项加载到DropDownList for helper
我一直在努力从通过实体框架创建的数据库表中加载项目的显示列表 我在网上找到了一些代码示例,但很多示例都创建了一个静态项目列表,然后添加到下拉列表中,如。 . 我找到了Scott Allen的一篇文章,这是我所拥有()的基础,但我认为问题在于我没有正确地将数据加载到作业中 这是我在控制器和其他类中的代码,非常感谢您的帮助或指导,因为我觉得我离您很近,但还没有C# 将实体框架创建的数据库中的项加载到DropDownList for helper,c#,asp.net,asp.net-mvc,entity-framework,html.dropdownlistfor,C#,Asp.net,Asp.net Mvc,Entity Framework,Html.dropdownlistfor,我一直在努力从通过实体框架创建的数据库表中加载项目的显示列表 我在网上找到了一些代码示例,但很多示例都创建了一个静态项目列表,然后添加到下拉列表中,如。 . 我找到了Scott Allen的一篇文章,这是我所拥有()的基础,但我认为问题在于我没有正确地将数据加载到作业中 这是我在控制器和其他类中的代码,非常感谢您的帮助或指导,因为我觉得我离您很近,但还没有 public class JobsController : Controller { var tasks = db.JobTypes.S
public class JobsController : Controller
{
var tasks = db.JobTypes.Select(c => new SelectListItem {Value = c.JobTypeID.ToString(), Text = c.JobDescription});
ViewBag.JobTypeAllNames = tasks;
return View();
}
我有两个类首先用于我的实体框架代码。Job类引用JobTypes类
public class Job
{
[Key]
[Display(Name="Job ID")]
public int JobID { get; set; }
[Display(Name = "Job Type")]
public int JobTypesID
{
get;
set;
}
private readonly List<JobType> _jobs;
public IEnumerable<SelectListItem> JobTypeItems
{
get
{
return new SelectList(_jobs, "JobTypesID", "JobDescription",1);
}
}
}
public class JobType
{
public int JobTypeID { get; set; }
[Display(Name = "Task")]
public string JobDescription { get; set; }
}
这不会编译:
public class JobsController : Controller
{
var tasks = db.JobTypes.Select(c => new SelectListItem {Value = c.JobTypeID.ToString(), Text = c.JobDescription});
ViewBag.JobTypeAllNames = tasks;
return View();
}
您需要有一个将返回ActionResult
的操作,我将使用视图中的模型,而不是使用ViewBag
:
public class JobsController : Controller
{
public ActionResult Index()
{
var model = new Job();
var tasks = db.JobTypes.Select(c => new SelectListItem {Value = c.JobTypeID.ToString(), Text = c.JobDescription});
model.JobTypeItems = tasks;
return View(model);
}
}
ps您需要调整您的作业
模型,以包括一个setter并删除未使用的\u作业
:
public class Job
{
[Key]
[Display(Name="Job ID")]
public int JobID { get; set; }
[Display(Name = "Job Type")]
public int JobTypesID
{
get;
set;
}
public IEnumerable<SelectListItem> JobTypeItems
{
get; set;
}
}
公共类作业
{
[关键]
[显示(Name=“作业ID”)]
public int JobID{get;set;}
[显示(Name=“作业类型”)]
公共int作业类型SID
{
得到;
设置
}
公共IEnumerable作业类型项
{
获得;设置;
}
}
@BryanPritchett没问题。谢谢。:)
public class Job
{
[Key]
[Display(Name="Job ID")]
public int JobID { get; set; }
[Display(Name = "Job Type")]
public int JobTypesID
{
get;
set;
}
public IEnumerable<SelectListItem> JobTypeItems
{
get; set;
}
}