gpt4 book ai didi

c# - MVC - 将发布数据插入数据库

转载 作者:可可西里 更新时间:2023-11-01 07:49:46 27 4
gpt4 key购买 nike

我正在使用 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; }
}

View 模型:

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>

Controller :

 [HttpPost]
public ActionResult Create(MyViewModel model)
{
if (ModelState.IsValid)
{
db.users.Add(model);?????????????????
db.SaveChanges();
return RedirectToAction("Index");
}

return View(model);
}

最佳答案

首先,从下拉列表是针对 User.Id_Company 而不是针对公司列表而言,您的 DropDownListFor 似乎设置不正确。它很可能应该是:

<li>
@Html.LabelFor(m => m.cl.Ncompany)<br />
@Html.DropDownListFor(o => o.u.Id_Company, Model.cl.Ncompany, "-- Select --", new { @class = "abc" })
</li>

接下来,在您的 Controller 中,您可以直接从返回的模型中插入,但在某些时候,您可能会停止使用域模型(您的数据库表的模型)并开始使用 View 模型。话虽如此,您可以这样添加一个新用户:

[HttpPost]
public ActionResult Create(MyViewModel model)
{
if (ModelState.IsValid)
{
var db = new DefaultConnection(); (?? is this what your context is called?)
db.users.Add(new User{
Id_Company = model.u.Id_Company,
Name = model.u.Name
});
db.SaveChanges();
return RedirectToAction("Index");
}

return View(model);
}

关于c# - MVC - 将发布数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493683/

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