我正在使用MVC,並創建了一個將值插入數據庫的表單。MVC - 將數據插入到數據庫中
我的數據庫結構有關係:
- 一個 - >很多
- 許多 - >許多
例如: 用戶表包含一個外鍵表公司。在我的視圖中,我有一個包含所有公司的下拉列表。
我可能需要的是將數據插入到具有外鍵的表中的工作示例。 我已經搜索並嘗試了很多解決方案,但無法弄清楚如何使其工作。
這裏是我的代碼:
型號:
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控制器,具有讀/寫......」'嘗試創建使用選項'一個新的MVC控制器。然後檢查Visual Studio爲控制器和視圖生成的代碼。 – alfoks
您不需要VIewModel中的公司列表。更改視圖模型以保存用戶數據和公司ID,就像用戶實體一樣。 – Nilesh
也許這是你的數據庫的問題?確保應用程序不會每次都重新創建數據庫。 –