2015-11-02 19 views
-1

我有一些复选框,我想在idList中检索标识符对应的复选框列表。从选中的复选框中检索标识号

这是我的代码:

@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))) 

我怎么能这样做?谢谢!

回答

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操作方法并将其传递给视图。