如何从我的视图中启动删除操作?
为每个实体创建一个新的表单标签似乎不对: - )
<% foreach (var subscriber in group.Subscribers) { %>
<tr>
<td><%= subscriber.Email %></td>
<td><%= Html.ActionLink("[edit]", "edit", "subscriber", new {id=subscriber.SubscriberId}, null) %></td>
<td>
<form id="delete-subscriber-form" method="post" action="<%= Url.Action( "delete", "subscriber", new { @subscriberId = subscriber.SubscriberId }) %>">
<input type="submit" value="Delete" />
</form>
</td>
</tr>
<% } %>
你会怎么做?
答案 0 :(得分:5)
我通常使用项目侧面的复选框。然后我可以使用动作链接(按钮,等等)将动作应用于所选项目(例如删除)。
答案 1 :(得分:0)
你可以使用CSS和Javascript,为你要删除的所有元素添加'forDel'css类,如果你打算使用jquery你可以这样做:
$(".element").each(function(){
$(this).data("id","the id of the element in db")
});
$(".element").toggle(function(){
$(this).addClass("forDel");
},function(){
$(this).removeClass("forDel");
});
然后按下删除按钮:
var idsForDel;
$(".forDel").each(function(){
idsForDel = $(this).data("id"); + ";";
})
您可以将idsForDel传递给Controller ...并将其拆分到服务器端。
答案 2 :(得分:0)
这取决于具体情况,如果您正在进行CRUD操作,通常每次操作都会使用一个<form>
标记(删除,编辑,新建)。但是,如果您正在显示一个列表,并且希望能够通过一次单击“多次删除”项目,那么您将需要从不同的角度处理它,因为您需要将所有必需的信息封装到一个表单中。
修改强>
再看看你上面的帖子,我注意到你正在为列表中的每个元素提供一个“删除按钮”。对于像这样的原子动作(即用户希望在点击按钮后直接发生某些事情),我肯定会为每个项目使用一个表单。
我上面写的内容仍然适用......