从Ajax调用获取提交按钮的值

问题描述

在操作中,提交按钮的值始终为空。

要知道单击了哪个提交按钮,我需要更改什么?

<form id="actionInvitation">
                    <div>
                        <ul>
                            <li>
                                @Model.TeamInviteBy
                            </li>
                        </ul>
                    </div>       
                    <input type="submit" name="actionBtn" id="acceptBtn" value="Accept Invitation" />
                    <input type="submit" name="actionBtn" id="declineBtn" value="Decline Invitation" />
                </form>


$('#actionInvitation').submit(function (e) {
        e.preventDefault();
        var formData = new FormData($('#actionInvitation')[0]);
        $.ajax({
            url: '@Url.Action("ActionInvitation","Home")',type: 'post',cache: false,processData: false,contentType: false,data: formData,success: function (data) {
                $("#invitationActionMessage").append('Invitation Accepted');
            }
        });
    });

//Action
public async Task<IActionResult> ActionInvitation(Userviewmodel userviewmodel,string acceptBtn,string declineBtn)

解决方法

您的formData将不包含您需要传递的对象。

您可以按以下方式更改代码:

<form id="actionInvitation">
<div>
    <ul>
        <li>
            @Model.TeamInviteBy
            <input type="hidden" name="TeamInviteBy" value="@Model.TeamInviteBy">
        </li>
    </ul>
</div>
<input type="submit" name="actionBtn" onclick="Send(event,this)"  value="Accept Invitation" />
<input type="submit" name="actionBtn" onclick="Send(event,this)"  value="Decline Invitation" />
</form>
@section scripts{ 
<script>
    function Send(ev,el) {
        ev.preventDefault();
        var data = $("input[name='TeamInviteBy']").val();
        var value = $(el).val();
         $.ajax({
            url: '@Url.Action("ActionInvitation","Home")',type: 'post',contentType: "application/x-www-form-urlencoded; charset=utf-8",data: { TeamInviteBy: data,actionBtn: value},success: function (data) {
                $("#invitationActionMessage").append('Invitation Accepted');
                }
                });
    }
</script>
}

动作:

 public async Task<IActionResult> ActionInvitation( UserViewModel userViewModel,string actionBtn)
    {
      if(actionBtn="Accept Invitation")
       {
        //...
       }
       else
       {
       }
    }

结果: enter image description here