【问题标题】:.Net Core MVC: How to capture multiple Buttons inside single Form with one Postmethod?.Net Core MVC:如何使用一个 Postmethod 在单个表单中捕获多个按钮?
【发布时间】:2022-11-24 12:16:39
【问题描述】:

我有一张桌子,它在运行时被填满。在最后一行中,我想向每一列添加一个按钮,当按下一个按钮时,它将链接到相同的 Post 方法,但具有不同的值。

<form method="post" asp-action="ChangeAll">
   <input asp-for="DataId" type="hidden" />
 <table>
  <thead>
   .....
  </thead>
  <tbody>
  ....data dynamically loaded
  (
   <td>
       <input type="checkbox" name="boxes" value="@Model.RowId" />
    </td> )

  //last Row:
  <tr>
    <td>
      <input type="submit" value="Update" />
      <input type="hidden" name="selectedAction" value="@MyEnum.Value1" hidden />
    </td>
    ......
   <td>
      <input type="submit" value="Update" />
      <input type="hidden" name="selectedAction" value="@MyEnum.Value20" hidden />
    </td>
  </tr>
 </tbody>
</table>
</form>



[HttpPost]
     public async Task<IActionResult> ChangeAll(int[] boxes, int DataId, string 
    selectedAction){

上面的问题是,无论我单击哪个按钮,它总是回传第一个按钮 (MyEnum.Value1) 的值。 我尝试向每个按钮添加 asp-action="ChangeAll",但行为保持不变。

那么,如何获取我实际点击的Button的值呢?

【问题讨论】:

标签: html asp.net-core-mvc


【解决方案1】:

在您的代码中,所有隐藏的输入都具有相同的名称,因此当您提交表单时。它将绑定第一个。您可以像这样更改代码:

<form method="post" asp-action="ChangeAll" id="Form">
 .....
<input type="hidden" name="selectedAction"  id="select" hidden />

    <tr>           
    <td>
      <input type="submit" value="Update" data-action="@MyEnum.Value1" onclick="choice(this,event)"/>         
    </td>
     ........
    <td>
      <input type="submit" value="Update" data-action="@MyEnum.Value20" onclick="choice(this,event)"/>        
    </td>
   </tr>
</form>

<script>
         function choice(a,event){
             event.preventDefault();
             var result = $(a).data("action");
             document.getElementById("select").value = result;
             document.getElementById("Form").submit();
         }
    </script>

在上面的代码中,我只写了一个hidden input,自定义了一个属性--data-action来接受@MyEnum.Valuexx的值,然后把这个值赋给hidden input。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 2023-03-14
    • 2017-10-04
    • 2018-07-10
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多