将网格视图上的选定复选框添加到控制器

时间:2016-10-28 08:49:59

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

我在foreach声明中有一个网格。这个foreach语句有一个HTML输入复选框列。

我的问题是,我能够正确填充行和网格。即使复选框属性没问题,所有输入字段都可以,但我无法完成所有"检查"复选框以模型的形式传递给控制器​​。

这是我的HTML /查看代码:

<input type="checkbox" class="chkEmployee" name="lngEmployeeID" value="="@Model.lngEmployeeID"></input>

这是我的JQuery代码:

function fncBulkApprove() {

        $('#btnEdit').unbind();
        $('#btnEdit').on('click', function(e) {
             e.preventDefault();
             var objData = $('form').serialize();
            $.ajax({
                url: '@Url.Action("fncBulkEdit", Model)',
                type: 'POST',
                datatype: 'application/JSON',
                data: objData,
                beforeSend: function () {
                },
                complete: function (request, status) {
                },
                success: function (result) {
                    $('#divEdit').dialog('open');
                },
                error: function (request, status, error) {
                }
            });                   
            });                
    }

在我的控制器上,我将模型作为参数传递:

[HttpPost]
    public PartialViewResult fncBulkEdit(entEmployee objModel)
    {
        return PartialView("_Edit");
    }

模型上的ID列表在:

下声明
public virtual IList<long> lngEmployeeID { get; set; }

我如何将所有选中的复选框作为IList ID传递给我的控制器?

1 个答案:

答案 0 :(得分:1)

你不应该在foreach循环中使用checkbox。 在下面用于循环

中使用它
@for(int i = 0; i < Model.ModelGroup.Count; i++)
{
  <tr>
    <td>
      @Html.CheckBoxFor(m => m.ModelGroup[i].lngEmployee)
    </td>
  </tr>
}

Check this for details 希望这会有所帮助..