如何从cshtml获取控制器操作的数据

时间:2018-03-07 16:22:30

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

我已经使MVC网站与数据库连接。控制器中的操作已创建为DeleteButton(idSelect),它删除了作为主键的id的数据,并返回此页面的操作。

<button >Delete</button>
@foreach (var item in Model)
 {
      <tr class='clickable-row'>
           <td>
               @Html.DisplayFor(modelItem => item.Id)
           </td>
      </tr>
  }

并且当我单击选择行添加类到tr时,我有js代码,并且只能选择一行。 但我该怎么办才能在控制器中调用此动作?

onclick="window.location='@Url.Action("DeleteButton", "Home", new { idSelect = 10000 })'"

我把它放在按钮上进行测试,效果很好。但是我想在选择要删除的类的行中获取id。

2 个答案:

答案 0 :(得分:0)

我将您的实现更改为使用Jquery选择器和Ajax发布,如下所示。

添加带有html标记的按钮并添加&#34; id&#34;到数据属性。

<input id="btnDelete" type="button" class="button" value="Run Script" data-id="@item.id"/>

$(document).on('click', 'button', function () {    
    var id= $(this).data("id");

    $.ajax({
        type: "POST",
        url: "/Home/DeleteButton/",
        data: {idSelect:id}
     });
});

因此,上面的JQuery将处理任何按钮点击,获取与该按钮data-id属性相关联的id,并将其发布到您的控制器/动作,并使用名为&#34; idSelect&#34;

的param

希望有所帮助 感谢

答案 1 :(得分:0)

您不需要在tag上指定可点击的行类。只需呈现操作链接。它将在Home controller中调用DeleteButton操作方法

@foreach (var item in Model)
 {
      <tr>
           <td>
               @Html.ActionLink("Delete","DeleteButton", "Home", new { id = 10000 })
           </td>
      </tr>
  }