如何将多个具有相同名称的输入插入数据库?

时间:2017-11-25 04:32:17

标签: c# asp.net asp.net-mvc entity-framework linq

我想在实体框架中插入多个具有相同名称的输入。 我试试这个但不行的

模型

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");
    }

的DbContext

public class ProductContext : DbContext
    {
        public DbSet<Skill> Skills { get; set; }
    }

我该怎么办? 我找到了这个 https://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ 但本教程没有插入

的控制器示例

1 个答案:

答案 0 :(得分:1)

更改

public string skill_name { get; set; }

public string[] skill_name { get; set; }

然后按如下所示更改Save操作方法

[HttpPost]
public ActionResult Save(Skill skills)
{
    foreach (var skillName in skills.skill_name)
    { 
       Skill skill = new Skill(); 
       skill.skill_name = skillName;     
       db.Skills.Add(skill);
       db.SaveChanges();
    }
  return RedirectToAction("index");
}