#ajax #asp.net-core-mvc #form-submit
#ajax #asp.net-core-mvc #форма-отправить
Вопрос:
Значение кнопок отправки всегда равно нулю в действии.
Что мне нужно изменить, чтобы узнать, какая кнопка отправки была нажата?
<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)
Комментарии:
1. Привет @Ryn901, если мой ответ вам полезен, вы можете пометить его как ответ, это будет полезно людям, у которых позже возникнет такая же проблема.
Ответ №1:
Ваш 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
{
}
}