剃刀页面 Post returns 400

Razor Pages Post returns 400

我在索引页面上有一个 ViewComponent,它使 post 到另一个页面 LogTransaction。当我 post 到 LogTransaction 页面时,它 returns 一个 400。我知道该页面已找到,因为当我向 LogTransaction 发出 GET 请求时,它运行良好。但是任何时候我尝试 POST 它,它 returns 一个 400.

Default.cshtml 包含在 localhost:5001/Index:

上的 ViewComponent
@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";
}

当我单击“保存”按钮时,我在 /LogTransaction 的 POST 请求上收到 400。我知道它正在查找页面,因为我可以向 /LogTransaction 发出成功的 GET 请求。只是 post 个请求不起作用。

我没有在表单中输入 CSRF 令牌。您可以手动将其放入,也可以在表单上使用 asp-page helper 而不是操作。该助手自动输入 CSRF 令牌输入