从所选复选框中检索ID

时间:2015-11-02 15:28:34

标签: asp.net-mvc checkbox

我有一些复选框,我想在idList中检索与所选复选框相对应的id列表。

这是我的代码:

@foreach (var inv in Model.Invoices)
{
    <tr>
        <td>@Html.CheckBox("Selected", true, new { @class = "SelectInvoice", data_id = inv.ID, id = "Selected-" + inv.ID })</td>

现在我从模特中获得了所有内容:

  @using (Html.BeginForm("SendUnpaid", "Invoice"))
        {
            @Html.Hidden("idList", string.Join(",", Model.Invoices.Select(row => row.ID)))

我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:1)

这就是我更喜欢这样做的方式。 IMO更清洁,更易于维护。

假设您的模型中有发票清单。

<强>模型

public class YourModel
{
public string Property {get; set;}
public IList<Invoice> Invoices {get; set;}
}

为Invoice创建自定义类

  public class Invoice
{
    public string Name{ get; set; }
    public bool IsChecked { get; set; }
    public int Id { get; set; }
}

查看

@for (var i = 0; i < Model.Invoices.Count; i++) 
    { <tr> 
      <td>
        @Html.CheckBoxFor(m => m.Invoices[i].IsChecked, new { @id = Model.Invoices[i].Id}) <span>@Model.Invoices[i].Name</span> 
     </td> 
     </tr> 
    }

控制器

获取您的ID列表,或使用选中的项目执行您喜欢的任何操作。

 foreach (Invoice invoiceObj in model.Invoices)
           {
              if (invoiceObj .IsChecked)
              {
              }
           }

要检查加载项目,您需要在GET操作方法上填写发票清单并将其传递给视图。