网格中的帖子按钮

时间:2013-12-19 19:48:17

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

我在网格(表格)中有很多产品。

每行都有一个自己的按钮来删除和编辑产品。

现在我的问题是:如何在发布消息后识别哪个表行被选中?

最好的问候

<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>

2 个答案:

答案 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 的额外点。