【发布时间】:2017-11-25 04:32:17
【问题描述】:
我想用实体框架插入多个同名输入。 我试试这个,但不行
型号
public class Skill
{
[Key]
public int skill_id { get; set; }
public string skill_name { get; set; }
}
查看
@model WebApplication1.Models.Skill
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<input type="text" name="skill_name[0]" id="skill_name[0]" />
<input type="text" name="skill_name[1]" id="skill_name[1]" />
<input type="submit" value="Submit" />
}
控制器
ProductContext db = new ProductContext();
[HttpPost]
public ActionResult Save(IList<Skill> skills)
{
foreach (var item in skills)
{
db.Skills.Add(skills);
db.SaveChanges();
}
return RedirectToAction("index");
}
数据库上下文
public class ProductContext : DbContext
{
public DbSet<Skill> Skills { get; set; }
}
我该怎么办? 我发现这个 https://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ 但是本教程没有用于插入的控制器示例
【问题讨论】:
-
您的模型不包含名为
Skills的属性。你想绑定什么(你的代码没有意义)。您的模型不包含集合项,无论如何您只保存一个对象。 -
技能来自dbContext中的dbSet
-
我知道!但是你想在这里做什么 - 插入多个
Skill实例? -
将多个实例插入到表 Skill 中的“skill_name”字段
-
我建议您详细阅读this answer 以了解如何生成视图并绑定到集合。如果您想动态添加(和删除)项目,请参考this answer
标签: c# asp.net asp.net-mvc entity-framework linq