MVC5 Multiselect复选框值未传递给数据库

时间:2015-03-23 11:15:51

标签: jquery razor checkbox asp.net-mvc-5

我使用以下代码实现多选复选框:

<input type="checkbox" name="Location" value="S" /> S &nbsp;
<input type="checkbox" name="Location" value="I" /> I &nbsp;
<input type="checkbox" name="Location" value="T" /> T 
@Html.HiddenFor(model => model.Location)

我有一些jQuery来提取值:

$("#Location").change(function () {
  // grab the selected options
  var grid = $.map($("input[name='Location']:checked"), function (e, i) {
      return e.value;
  });
  $("#Location").val(grid);
  console.log("Location: " + $("#Location").val());
});

控制台输出我期望的内容,例如:

Location: S,I,T

如果选中所有复选框。出于某种原因,虽然数据保存到数据库中时只保存了第一个字母。数据库字段是nvarchar(6),因此并不是它在那一端被截断。任何想法为什么没有传递字符串的完整值?

1 个答案:

答案 0 :(得分:0)

这种行为是因为服务器收到一些名称为Location的值,但只接受收到的第一个值。

要解决您的问题,您必须为表单中的复选框指定不同的名称,然后分别在服务器上处理它们。