如何将多选下拉列表值保存到 Asp.net MVC 中的数据库 table
How to save multiselected dropdownlist values into database table in Asp.net MVC
我正在使用 entity framework 和 jquery 选择的插件来获取技能 属性 的多选下拉列表值。我一直在努力让所选的插件在我看来工作,并弄清楚了,但现在我面临另一个传递那些多选值的问题(例如:Java、c#、javascript 等技能)进入控制器并保存到我的员工 table。
public IEnumerable<string> Skills { get; set; }
以上代码目前在我脑海中保存多个值,但不确定如何正确使用它。考虑多种方法,但我绝对需要指导。
我的模型看起来像:
public class Employee
{
public string Name { get; set; }
public string Skills { get; set; }
}
和我的控制器:
public ActionResult Create([Bind(Include = "Name,Skills")] Employee employee)
{
if (ModelState.IsValid)
{
db.Employees.Add(employee);
db.SaveChanges();
return View("Success");
}
return View(employee);
}
查看:
@using (Html.BeginForm())
{
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Skills)
@Html.ListBoxFor(model => model.Skills, ViewBag.skillList as MultiSelectList,
new { @class = "chzn-select", id="skills", data_placeholder = "Choose Skills..." })
@Html.ValidationMessageFor(model => model.Skills)
<input type="submit" value="Create" class="btn btn-default" />
}
我正在考虑的另一种方法是创建员工 table 可以进行导航 属性 的技能 table。一名员工可以拥有任意数量的技能,因此技能导航 属性 是一个集合。但老实说,对此知之甚少,也需要这方面的指导。例如:
public class Employee
{
public string Name { get; set; }
public int SkillID { get; set; }
public virtual ICollection<Skill> Skills { get; set; }
}
如果这些方法中的任何一个没有意义,请告诉我为什么以及如何正确使用它,我将不胜感激。谢谢!
我用 chosen 创建了一个基于多选的过滤器,数据模型使用数组,所以在你的情况下它会是
public string[] Skills { get; set; }
我正在使用 entity framework 和 jquery 选择的插件来获取技能 属性 的多选下拉列表值。我一直在努力让所选的插件在我看来工作,并弄清楚了,但现在我面临另一个传递那些多选值的问题(例如:Java、c#、javascript 等技能)进入控制器并保存到我的员工 table。
public IEnumerable<string> Skills { get; set; }
以上代码目前在我脑海中保存多个值,但不确定如何正确使用它。考虑多种方法,但我绝对需要指导。
我的模型看起来像:
public class Employee
{
public string Name { get; set; }
public string Skills { get; set; }
}
和我的控制器:
public ActionResult Create([Bind(Include = "Name,Skills")] Employee employee)
{
if (ModelState.IsValid)
{
db.Employees.Add(employee);
db.SaveChanges();
return View("Success");
}
return View(employee);
}
查看:
@using (Html.BeginForm())
{
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Skills)
@Html.ListBoxFor(model => model.Skills, ViewBag.skillList as MultiSelectList,
new { @class = "chzn-select", id="skills", data_placeholder = "Choose Skills..." })
@Html.ValidationMessageFor(model => model.Skills)
<input type="submit" value="Create" class="btn btn-default" />
}
我正在考虑的另一种方法是创建员工 table 可以进行导航 属性 的技能 table。一名员工可以拥有任意数量的技能,因此技能导航 属性 是一个集合。但老实说,对此知之甚少,也需要这方面的指导。例如:
public class Employee
{
public string Name { get; set; }
public int SkillID { get; set; }
public virtual ICollection<Skill> Skills { get; set; }
}
如果这些方法中的任何一个没有意义,请告诉我为什么以及如何正确使用它,我将不胜感激。谢谢!
我用 chosen 创建了一个基于多选的过滤器,数据模型使用数组,所以在你的情况下它会是
public string[] Skills { get; set; }