我在网格(表格)中有很多产品。
每行都有一个自己的按钮来删除和编辑产品。
现在我的问题是:如何在发布消息后识别哪个表行被选中?
最好的问候
<table id="tbltraining" class="tblStyle">
<tr class="tblHearerRow">
<th class="tblHearerCell" style="width:50px;">
</th>
<th class="tblHearerCell" style="width:50px;">
</th>
<th class="tblHearerCell" style="width:200px;">
Name
</th>
<th class="tblHearerCell" style="width:100px;">
Price
</th>
<th class="tblHearerCell">
Actions
</th>
</tr>
@foreach (var item in Model.Products)
{
<tr class="tblRow" style="background-color:#c4cbf8">
<td id="itemId" class="itemIdClass tblColumn">
@Html.DisplayFor(modelItem => item.Id)
</td>
<td class="tblColumn" style="font-weight:bold;">
@Html.DisplayFor(modelItem => item.Name)
</td>
<td class="tblColumn">
@Html.DisplayFor(modelItem => item.Price)
</td>
<td class="tblColumn">
<input type="button" value="Edit"
class="buttonEdit btnStyleOne" />
<input type="button" value="Delete"
class="buttonDelete btnStyleOne" />
<input type="button" value="Add Category"
class="buttonDelete btnStyleOne" />
<td>
</tr>
答案 0 :(得分:1)
假设您的视图要显示产品列表。
@foreach(var item in Model.Products)
{
<div>
<span>@item.ProductName</span>
<span>@item.Price</span>
@Html.ActionLink("Edit","Edit",new {@id=item.ID}) |
@Html.ActionLink("Delete","Delete","Products",new {@id=item.ID},
new {@class="del"})
</div>
}
ActionLink
辅助方法会渲染锚标记并点击它会发出 GET 请求。我们不希望 DELETE 操作。因此,我们将在javascript中对click事件进行双向调整,并异步执行 POST 请求。
<script type="text/javascript">
$(function(){
$("a.del").click(function(e){
e.preventDefault();
$.post($(this).attr("href"),function(res){
// do something with the response
});
});
});
</script>
答案 1 :(得分:1)
您最好也是最简单的选择就是使用表单标记。您可以在页面上拥有多少表单。
<form action="@Url.Action("delete","products", new { id = item.ID })" method="POST">
<button type="submit">Delete</button>
</form>
你可以真正看中并创建一个帮助方法或局部视图,但这基本上就是你所需要的。
使用HttpVerb DELETE 的额外点。