【发布时间】:2015-05-01 14:54:45
【问题描述】:
努力将所选选择中的所有选定选项发回模型。
在视图中:
<select id="GridRegions" multiple name="@Html.NameFor(model => model.GridRegions)">
<option value=""></option>
<option value="Centre">Centre</option>
<option value="Inner">Inner</option>
<option value="Outer">Outer</option>
</select>
在脚本块中:
$("#GridRegions").chosen().change(function (e, params) {
values = $("#GridRegions").chosen().val();
$("#GridRegions").val(values);
console.log("Grid: " + $('#GridRegions').val());
});
控制台正确地写出选定的值,例如Centre,Inner 但只有 Center 在表单帖子中被传回,因为该字段需要一个字符串。我遵循了 SO 中关于如何将数组转换为脚本中的字符串的大量示例,但它总是以某种方式出错。
获取 values 数组、将其转换为逗号分隔的字符串并将其作为 GridRegions 的值传递给模型的最佳方法是什么?我使用的是 Entity Framework 6,所以 GridRegions 元素是 Grading 模型的一部分:
[HttpPost]
public ActionResult Form(Grading grading)
{
if (ModelState.IsValid)
{
db.Gradings.Add(grading);
db.SaveChanges();
}
}
【问题讨论】:
标签: asp.net arrays asp.net-mvc asp.net-mvc-5 http-post