我在索引页面上有一个ViewComponent,可将其发布到另一个页面LogTransaction
。当我发布到LogTransaction页面时,它返回400。我知道找到了该页面,因为当我向LogTransaction发出GET请求时,它可以正常工作。但是任何时候我尝试发布到它,它都会返回400。
ViewComponent的Default.cshtml包含在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";
}
单击“保存”按钮时,在/ LogTransaction的POST请求中得到400。我知道它正在查找页面,因为我可以向/ LogTransaction发出成功的GET请求。只是发布无效的请求。
我没有在表格中输入CSRF令牌。您可以手动将其放入,也可以在表单上使用asp页面帮助程序而不是操作。该助手会自动将相应的CSRF令牌输入自动放入
答案 0 :(得分:1)
我没有在表单中输入 CSRF 令牌。您可以手动将其放入,也可以使用表单上的 asp-page helper 而不是 action。该助手自动将CSRF令牌输入明显