Post checked checkboxes to controller action without using HTML helper like Html.CheckboxList

后端 未结 2 1809
无人及你
无人及你 2020-12-09 18:50

I have a list of items and I would like to delete items that are checked in a list of checkboxes.

I can\'t use something like CheckboxList since I\'m us

相关标签:
2条回答
  • 2020-12-09 19:43

    If you want generated html like

    <label><input type="checkbox" name="deletedItems" value="3"> Some label for 3</label>
    <label><input type="checkbox" name="deletedItems" value="4"> Some label for 4</label>
    

    Then you can use the following code

    <td>@Html.CheckBox("selectedItems", new { @value = @item.checkId })</td> 
    <td><input id="selectedItems" name="selectedItems" type="checkbox" value="11503" />
        <input name="selectedItems" type="hidden" value="false" /> 
    </td>
    

    It won't pass selectedItems to controller.

    0 讨论(0)
  • 2020-12-09 19:54

    Example of generated HTML:

    <label><input type="checkbox" name="deletedItems" value="3"> Some label for 3</label>
    <label><input type="checkbox" name="deletedItems" value="4"> Some label for 4</label>
    ...
    <button type="submit">Submit</submit>
    

    Controller action:

    [HttpPost]
    public ActionResult MyAction(int[] deletedItems)
    {
        // deletedItems contains all values that were checked
        // when the submit button was clicked. Here you can
        // loop through the array of IDs and delete by ID.
        ...
    }
    

    Note that the checkboxes do not have an id attribute. It is not used for model binding. Instead it has a name attribute named "deletedItems" that matches the name of the argument of the MyAction controller action, and that is what is used when model binding. The value attribute of checked checkboxes will be used to populate the deletedItems array of int[].

    0 讨论(0)
提交回复
热议问题