gpt4 book ai didi

c# - 将 Entity Framework 创建的数据库中的项目加载到助手的下拉列表中

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:53 24 4
gpt4 key购买 nike

我一直在努力从通过 Entity Framework 创建的数据库表中加载项目的显示列表。

我在网上找到了代码示例,但很多都创建了一个静态项目列表,然后将其添加到下拉列表列表中。 http://www.aspnetmvcninja.com/general/asp-net-mvc-dropdown-list-example .我找到了 Scott Allen 的一篇文章,它是我所拥有的 (http://odetocode.com/Blogs/scott/archive/2010/01/18/drop-down-lists-and-asp-net-mvc.aspx) 的基础,但我认为问题是我没有正确地将数据加载到 _jobs 中?

这是我在我的 Controller 和其他类中的代码,非常感谢任何帮助或指导,因为我觉得我是如此接近但又不是。

public class JobsController : Controller
{
var tasks = db.JobTypes.Select(c => new SelectListItem {Value = c.JobTypeID.ToString(), Text = c.JobDescription});
ViewBag.JobTypeAllNames = tasks;
return View();
}

我有两个类首先用于我的 Entity Framework 代码。 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; }
}

在我看来我有

@Html.DropDownListFor(model => model.JobTypesID, Model.JobTypeItems);

最佳答案

这不会编译:

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 的操作,我会使用您 View 中的模型而不是使用 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 你需要调整你的 Job 模型以包含一个 setter 并删除未使用的 _jobs:

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;
}
}

关于c# - 将 Entity Framework 创建的数据库中的项目加载到助手的下拉列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31588996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com