问题描述
在操作中,提交按钮的值始终为空。
要知道单击了哪个提交按钮,我需要更改什么?
<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
{
}
}