将复选框值从视图传递到控制器MVC 4时出现空错误

时间:2015-04-23 04:40:58

标签: asp.net-mvc asp.net-mvc-4

我正在尝试将复选框的值从视图传递到控制器。 这是我的代码

模特:

public partial class ORDER_HEADER_INFO
{
   //many other fields 
    public bool checkExport { get; set; }
}

在控制器中:

 [HttpPost]
 public void ExportCSV(List<Models.ORDER_HEADER_INFO> model) {
        foreach (Models.ORDER_HEADER_INFO item in model) {
              if (item.checkExport) {
                 //Do somethings
              }
         }

在视图中:

@model IEnumerable<TIS.Models.ORDER_HEADER_INFO>
@using (Html.BeginForm("ExportCSV", "MKP_004", FormMethod.Post)){
  <input type="submit" value="ExportCSV" />
  @foreach (var item in Model)
    {DateTime deadline = new DateTime(2015, 04, 12);
        var className = (item.PRODUCT_START_DATE >= deadline) ? "selected" : null;
        <tr class="@className">
            <td>
                @Html.ActionLink(item.ORDER_NO, "MKP_003", "MKP_003", new { id = item.ORDER_NO }, new { })
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.MODEL)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.PJNO)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.DELIVERY_DESTINATION)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.PRODUCT_START_DATE)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.FINISH_FLAG)
            </td>
            <td>
               @Html.CheckBoxFor(modelItem => item.checkExport)
            </td>
        </tr>        
    }
</table>
}

我的预期结果是我可以获得所选项目的列表,然后与它们一起工作。在方法的参数中。我试过了:

List<Models.ORDER_HEADER_INFO> model

IEnumerable<TIS.Models.ORDER_HEADER_INFO> model

但是当我调试模型时仍为空。

非常感谢!

1 个答案:

答案 0 :(得分:0)

正如其他人所提到的,您只需要将outMessage.get(DOCUMENT_HOLDER)重写为foreach循环,以便将索引应用于HTML字段的for属性,以便模型活页夹来做它的工作。将您的name更改为:

foreach