c# - 简单 ASP.Net Core Razor 页面上的 HTTP 400
问题描述
我正在尝试创建一个简单的“Hello world”ASP.Net Core 3.1 应用程序,但尝试发布表单时,我不断收到:
此页面无法正常工作。如果问题仍然存在,请联系网站所有者。
HTTP 错误 400
重现步骤:
MSVS2019 > 新项目 > ASP.Net Core Web 应用程序,C#
删除 Pages\* 中的样板、自动生成的代码,替换我自己的 Index.cshtml 和 Index.cshtml.cs
运行程序。我看到了我的表格。
点击“提交”。我得到 HTTP 400。
页面\Index.cshtml.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace HelloUploads.Pages
{
public class IndexModel : PageModel
{
public IActionResult OnGet()
{
return Page();
}
public IActionResult OnPost()
{
return RedirectToPage("./Index");
}
}
}
索引.cshtml
@page
@model HelloUploads.Pages.IndexModel
@{
ViewData["Title"] = "Test";
}
<form method="post">
<input type="submit" >
</form>
我确定问题很简单。我尝试了很多变化,我已经敲了几个小时。
问:我做错了什么?有什么建议么?
解决方案
您的问题可能是防伪令牌。将@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 添加到页面
@page
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@model HelloUploads.Pages.IndexModel
@{
ViewData["Title"] = "Test";
}
<form method="post">
<input type="submit" >
</form>
在代码后面添加 [ValidateAntiForgeryToken] 属性
[ValidateAntiForgeryToken]
public IActionResult OnPost()
{
return RedirectToPage("./Index");
}
希望它有效!
推荐阅读
- javascript - 如何通过设置相等的宽度和高度来获得一个圆
- amazon-web-services - 如何向 aws cost explorer 添加更多字段?
- android - 在关于 Android 工具链的“颤振医生”中显示错误
- android - greenDAO Android 没有在文件数据库中创建表
- excel - 使用 Sumifs 时类型不匹配(错误 13)
- python - 使用 networkx 解决修改后的旅行商问题 (TSP)
- java - 如何使用 Java Streams 获取 1 到 100 的斐波那契数列并将其添加到地图中
- regex - 正则表达式在开始时积极向后看不起作用?
- c - 有没有办法查看我服务器端的客户端套接字是否已死?
- php - CORS 策略阻止 ajax 请求