Razor Pages Post возвращает 400 - PullRequest
1 голос
/ 05 октября 2019

У меня есть ViewComponent на странице индекса, которая создает сообщение на другой странице LogTransaction. Когда я отправляю сообщение на страницу LogTransaction, она возвращает 400. Я знаю, что страница найдена, потому что когда я делаю GET-запрос к LogTransaction, она работает отлично. Но всякий раз, когда я пытаюсь POST к нему, он возвращает 400.

Default.cshtml для ViewComponent, содержащийся на localhost: 5001 / Index:

@using BudgetTracker.BudgetSquirrel.Web.Pages

@model BudgetViewModel

...

<form action="/LogTransaction" method="post">
    <!-- Inputs Here -->
    <button type="submit">Save</button>
</form>

LogTransaction.cshtml.cs

namespace BudgetTracker.BudgetSquirrel.Web.Pages
{
    public class LogTransactionModel : BasePageModel // extends PageModel
    {
        public void OnGet()
        {}

        public IActionResult OnPost()
        {
            Console.WriteLine("Hi");
            return Page();
        }
    }
}

LogTransaction.cshtml

@page
@model BudgetTracker.BudgetSquirrel.Web.Pages.LogTransactionModel
@{
    ViewData["Title"] = "LogTransaction";
}

Когда я нажимаю кнопку Сохранить, я получаю 400 на запрос POST в / LogTransaction. Я знаю, что он находит страницу, потому что я могу сделать успешный запрос GET к / LogTransaction. Это просто отправка запросов, которые не работают.

Редактировать: Решение найдено

У меня не было ввода токена CSRF в форме. Вы можете вставить его вручную или использовать помощник asp-страницы в форме вместо действия. Этот помощник автоматически вставляет входные данные токена CSRF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...