【发布时间】:2014-12-27 02:07:35
【问题描述】:
我首先使用实体框架代码创建了一个 MVC 项目。我的模型只是一个收集信息的表格。
public class Application
{
public int Id { get; set; }
public string FirstName { get; set; }
public string MiddleInitial { get; set; }
public string LastName { get; set; }
public int SSN { get; set; }
public DateTime DOB { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string State {get; set; }
public string Zip { get; set; }
public int HomePhone { get; set; }
public int BusinessPhone { get; set; }
public int MobilePhone { get; set; }
}
我的目标是创建一个包含所有状态的下拉列表,但我发现这非常困难,因为我已经通过带有视图和控制器的脚手架创建了数据库。有没有一种简单的方法可以做到这一点并将其与现有数据库联系起来?我几乎一整天都没有运气。对模型/控制器/视图包含的内容的概述/解释将是惊人的!
更新:我创建了一个名为“State”的新模型,其属性为“Id”和“StateName”,并在数据库中创建了一些状态。在 Create 操作方法中的“应用程序”控制器中,我有:
控制器
public ActionResult Create()
{
ApplicationDbContext db = new ApplicationDbContext();
this.ViewData["Id"] = new SelectList(db.States.ToList(), "Id", "StateName");
return View();
}
查看
@Html.DropDownList("Id")
现在的问题是我收到此错误“没有具有键 'Id' 的 'IEnumerable' 类型的 ViewData 项。”非常感谢帮助!
【问题讨论】:
-
问题是什么,如何从数据库中提取数据,或者在 UI 上显示?
-
嗯,我不确定该怎么做。我目前有一张申请表(上图)。我需要在设计器中手动创建另一个名为“States”的表还是先使用代码?之后,我需要知道如何提取数据,然后将其显示在我现有的表单上。
-
我已经通过脚手架创建了表单,并拥有一个包含应用程序信息的现有数据库。我的问题是如何创建一个下拉列表并将其添加到我现有的表单中。
-
您需要有一个数据库表(或其他一些数据存储)来保存可用状态。然后,您获取它们,将它们分配给
SelectList并使用@Html.DropDownFor()选择并将其分配给您的State属性。
标签: asp.net-mvc entity-framework model-view-controller