是否有任何函数可以将 onClick 函数传递给控制器​​

问题描述

我创建了一个按钮来避免生成具有相同值的双数,当一个用户点击它时我会创建一个按钮,向他和其他用户显示值正在保存过程中,这样我就可以避免出现双值。 但是当我尝试在服务器端控制器上捕获它时,它显示Inspect element->Network->Status 302 -> POST -> FILE (GenerateCodes) 中。

   @using (Html.BeginForm("GenerateCodes","Codes",FormMethod.Post))
   {
  <div class="Box-header">
  <div class="row">
  <div class="col-md-3 text-right">
  <!--disable button for about 3 second after click button-->
   <button type="submit" id="ok"  class="btn btn-primary btn-lg" onclick="return displayProgressMessage(this,'Saving...');">Generate</button>
   <script>
   function displayProgressMessage(ctl,msg) {
   $(ctl).prop("disabled",true);
   $(ctl).text(msg);
   return true;
   }
   </script>
  </div>
  </div>
  </div>
  }

我的 Codes.cs 控制器。

    protected void displayProgressMessage(object sender,EventArgs e)
    {
    //Something
    Response.Write("DD");
    }

解决方法

控制器中的方法名称需要为“GenerateCodes”以匹配 Html.BeginForm() 辅助方法中的操作。此外,该方法中的参数需要是 .cshtml 视图中的模型,或者如果您没有使用视图中的模型,则不需要参数。最后,您需要在控制器中的方法上使用 HttpPost 属性,以使其知道您正在向该方法发布表单。

[HttpPost]
public IActionResult GenerateCodes()
{
    //Do Something
}