【问题标题】:retrieve id's from selected checkboxes从选定的复选框中检索 id
【发布时间】:2016-01-01 22:50:16
【问题描述】:

我有一些复选框,我想在 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>

现在我从模型中获取所有 id:

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

我该怎么做?谢谢!

【问题讨论】:

    标签: asp.net-mvc checkbox


    【解决方案1】:

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

    假设您的模型中有一个发票列表。

    型号

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

    为发票创建自定义类

      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 操作方法上填写发票列表并将其传递给视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多