pau*_*sm4 1 c# razor asp.net-core
我正在尝试创建一个简单的“Hello world”ASP.Net Core 3.1 应用程序,但尝试发布表单时,我不断收到:
\n\n\n此页面\xe2\x80\x99 无法工作。如果问题仍然存在,请联系网站所有者。
\nHTTP 错误 400
\n
重现步骤:
\nMSVS2019 > 新建项目 > ASP.Net Core Web 应用程序,C#
\n删除Pages\\*中的样板、自动生成的代码,替换我自己的Index.cshtml和Index.cshtml.cs
\n运行程序。我看到了我的表格。
\n点击“提交”。我收到 HTTP 400。
\n页面\\Index.cshtml.cs
\nusing Microsoft.AspNetCore.Mvc;\nusing Microsoft.AspNetCore.Mvc.RazorPages;\n\nnamespace HelloUploads.Pages\n{\n public class IndexModel : PageModel\n { \n \n public IActionResult OnGet()\n {\n return Page();\n }\n\n public IActionResult OnPost()\n {\n return RedirectToPage("./Index");\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n索引.cshtml
\n@page\n@model HelloUploads.Pages.IndexModel\n@{\n ViewData["Title"] = "Test";\n}\n\n<form method="post">\n <input type="submit" >\n</form>\nRun Code Online (Sandbox Code Playgroud)\n我确信问题很简单。我尝试了很多变体,并且已经敲了好几个小时的头。
\n问:我做错了什么?有什么建议么?
\n小智 12
您的问题可能是防伪令牌。在页面中添加@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>
Run Code Online (Sandbox Code Playgroud)
在后面的代码中添加 [ValidateAntiForgeryToken] 属性
[ValidateAntiForgeryToken]
public IActionResult OnPost()
{
return RedirectToPage("./Index");
}
Run Code Online (Sandbox Code Playgroud)
希望它有效!