【发布时间】:2013-08-28 16:43:00
【问题描述】:
我正在使用 MVC 并创建了一个表单来将值插入到我的数据库中。
我的数据库结构有关系:
- 一个 -> 许多
- 很多 -> 很多
例如: User 表包含表 Company 的外键。在我看来,我有一个包含所有公司的下拉列表。
我可能需要一个使用外键将数据插入表的工作示例。 我已经四处搜索并尝试了许多解决方案,但无法弄清楚如何使其发挥作用。
这是我的代码:
型号:
public class DefaultConnection : DbContext
{
public DefaultConnection()
: base("DefaultConnection")
{
}
public DbSet<User> users{ get; set; }
}
public class Company
{
public int Id { get; set; }
public string Name{ get; set; }
}
public class User
{
public int Id { get; set; }
[ForeignKey("Company")]
public int Id_Company { get; set; }
public Company Company{ get; set; }
}
视图模型:
public class MyViewModel
{
public MyViewModel()
{
this.u= new User();
this.cl = new Companylist(); <== another class which i have create a selectlist
}
public User u{ get; set; }
public Companylist cl{get;set;}
}
查看:
<ol>
<li>
@Html.LabelFor(m => m.cl.Ncompany)<br />
@Html.DropDownListFor(o => o.cl.Ncompany, Model.cl.Ncompany, "-- Select --", new { @class = "abc" })
</li>
<li>
@Html.LabelFor(m => m.u.Name)<br />
<input type="text" name="Name" value="" />
</li>
</ol>
控制器:
[HttpPost]
public ActionResult Create(MyViewModel model)
{
if (ModelState.IsValid)
{
db.users.Add(model);?????????????????
db.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}
【问题讨论】:
-
您也可以尝试使用选项
"MVC Controller with read/write ... using Entity Framework"创建一个新的 MVC 控制器。然后检查 Visual Studio 为控制器和视图生成的代码。 -
您不需要 VIewModel 中的公司列表。更改视图模型以保存用户数据和公司 ID,就像用户实体一样。
-
可能是你的数据库有问题?确保应用程序不是每次都重新创建数据库。
标签: c# mysql sql asp.net-mvc entity-framework