Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 将选中的复选框张贴到控制器操作,而不使用HTML帮助程序(如HTML.CheckboxList)_Asp.net Mvc_Razor_Model Binding - Fatal编程技术网

Asp.net mvc 将选中的复选框张贴到控制器操作,而不使用HTML帮助程序(如HTML.CheckboxList)

Asp.net mvc 将选中的复选框张贴到控制器操作,而不使用HTML帮助程序(如HTML.CheckboxList),asp.net-mvc,razor,model-binding,Asp.net Mvc,Razor,Model Binding,我有一个项目列表,我想删除在复选框列表中选中的项目 我不能使用类似于CheckboxList的东西,因为我正在使用Grid.Mvc来显示我的行。这就是为什么我在每一行的列中创建复选框。添加(“); 每个复选框都有自己的ID: <input type="checkbox" id="3"> <input type="checkbox" id="4">... ... 我想知道如何将所有选中的复选框ID传递给控制器(从那里我将执行删除操作)。如何通过一个按钮将表单中的选中I

我有一个项目列表,我想删除在复选框列表中选中的项目

我不能使用类似于
CheckboxList
的东西,因为我正在使用
Grid.Mvc
来显示我的行。这就是为什么我在每一行的
列中创建复选框。添加(“);

每个复选框都有自己的ID:

<input type="checkbox" id="3">
<input type="checkbox" id="4">...

...

我想知道如何将所有选中的复选框ID传递给控制器(从那里我将执行删除操作)。如何通过一个按钮将表单中的选中ID数组发布到控制器操作?

生成的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>

请注意,复选框没有
id
属性。它不用于模型绑定。相反,它有一个名为“deletedItems”的
name
属性“它与
MyAction
控制器操作的参数名称匹配,这是在绑定模型时使用的。选中复选框的
属性将用于填充
int[]

deletedItems
数组,如果您希望生成类似的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>
3的一些标签
一些4的标签
然后可以使用以下代码

<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>
@Html.CheckBox(“selectedItems”,new{@value=@item.checkId})

它不会将selectedItems传递给控制器。

您需要编写一些JavaScript或jQuery来解析它们以发送它们。除此之外,我们还需要了解您尝试过哪些仍然无效。此链接将非常有用。我不能使用checkboxlist,因为我使用Grid.Mvc来显示我的行。这就是为什么我在每一行和列中创建复选框。添加(“);我想这就是我需要的。谢谢!最简单的解决方案,而不是传递整个表单。这是一个糟糕的解决方案。大多数人需要的不仅仅是复选框结果。它应该通过模型来实现。
<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>