【问题标题】:HTTP 400 on simple ASP.Net Core Razor page简单 ASP.Net Core Razor 页面上的 HTTP 400
【发布时间】:2021-01-08 01:21:46
【问题描述】:

我正在尝试创建一个简单的“Hello world”ASP.Net Core 3.1 应用程序,但尝试发布表单时,我不断收到:

此页面无法正常工作。如果问题仍然存在,请联系网站所有者。

HTTP 错误 400

重现步骤:

  1. MSVS2019 > 新项目 > ASP.Net Core Web 应用程序,C#

  2. 删除样板,在 Pages\* 中自动生成代码,替换我自己的 Index.cshtml 和 Index.cshtml.cs

  3. 运行程序。我看到了我的表格。

  4. 点击“提交”。我得到 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");
        }
    }
}

Index.cshtml

@page
@model HelloUploads.Pages.IndexModel
@{
    ViewData["Title"] = "Test";
}

<form method="post">
   <input type="submit" >
</form>

我确定问题很简单。我尝试了很多变化,我已经敲了几个小时。

问:我做错了什么?有什么建议吗?

【问题讨论】:

    标签: c# asp.net-core razor


    【解决方案1】:

    您的问题可能是防伪令牌。在页面中添加@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");
    }
    

    希望它有效!

    【讨论】:

      【解决方案2】:

      问:我做错了什么?有什么建议吗?

      您提供的代码没有问题,在绝大多数可能的情况下,400 Bad Request 是由向服务器提交的请求或本地缓存问题引起的client-side 问题

      您可以尝试以下解决方案来解决您的问题。

      1. 检查提交的 URL
      2. 清除浏览器缓存
      3. 清除浏览器 Cookies
      4. 文件上传超出服务器限制
      5. 清除 DNS 缓存
      6. 停用浏览器扩展

      更多详情,可以参考this

      【讨论】:

      • 感谢您的回复。我相信你是绝对正确的——这个特殊的“HTTP 400”确实可能是一个客户端问题。不幸的是,清除浏览器缓存/cookie 删除/重建项目二进制文件并没有帮助; DNS 缓存/文件上传大小不适用。我会及时通知你我的发现......
      猜你喜欢
      • 2018-10-08
      • 2020-08-22
      • 2020-08-14
      • 2019-05-22
      • 1970-01-01
      • 2021-06-26
      • 2020-12-10
      • 2021-10-27
      • 2020-05-06
      相关资源
      最近更新 更多