Я использую Asp. Net Core 2.2
Я не понимаю, почему после вызова Fetch POST мой POST IActionResult не перенаправляет на другое действие и его представление ?
My Fetch in JS:
window.onload = function () {
var requestToken = document.getElementsByName("__RequestVerificationToken")[0].value
fetch('http://localhost:53801/User/Checkout', {
method: 'post',
headers: {
"X-ANTI-FORGERY-TOKEN": requestToken,
"Content-Type": "application/json",
"Accept": "application/json"
},
body: JSON.stringify({
token: 'sometoken',
payerID: 'someid',
amount: price,
users: usersQty,
years: yearsQty
})
}).catch(function (err) {
console.log(`error: ${err}`);
});
}
My POST Action:
[HttpPost]
[Authorize]
public async Task<IActionResult> Checkout([FromBody] TransactionCompletedModel transaction)
{
AppUser user = await _userManager.GetUserAsync(User);
if (user != null)
{
if (user.PremiumExpiring == null || user.PremiumExpiring < DateTime.UtcNow)
{
user.PremiumExpiring = DateTime.UtcNow.AddYears(1); //if not yet have full access
}
else
{
user.PremiumExpiring = user.PremiumExpiring.AddYears(1); //if already have full access
}
await _userManager.UpdateAsync(user);
}
return RedirectToAction(nameof(TransactionCompleted));
}
И метод, который просто должен возвращать новый View, но это не так :
[Authorize]
public IActionResult TransactionCompleted()
{
return View();
}
После выполнения вызова Fetch я получаю в консоли браузера:
XHR GET http://localhost: 53801 / User / TransactionCompleted [HTTP / 1.1 200 OK 724ms]
Как я понимаю, в моем RedirectToAction
нет ничего плохого, так почему public IActionResult TransactionCompleted()
не возвращает / перезагружает новый вид, просто я застрял в старом виде, где Fetch звонок был выполнен?