C# 如何在razor页面中处理POST请求

C# 如何在razor页面中处理POST请求,c#,razor,C#,Razor,我试图将数据发布到Razor页面,但OnPost从未被调用。它可以与OnGet一起使用,但不能使用POST(出于某些原因) 我尝试过定义HttpPost,但运气不好 我用邮递员来测试 第页: 型号: public class EmailDataModel { public string Name { get; set; } public string Value { get; set; } } 数据: 添加[HttpPost]属性 像这样的要求后 [HttpPost]

我试图将数据发布到Razor页面,但OnPost从未被调用。它可以与OnGet一起使用,但不能使用POST(出于某些原因)

我尝试过定义HttpPost,但运气不好

我用邮递员来测试

第页:

型号:

public class EmailDataModel
{
    public string Name { get; set; }
    public string Value { get; set; }
}
数据:


添加
[HttpPost]
属性

像这样的要求后

   [HttpPost]
    public void OnPost([FromBody] EmailDataModel model)
    {
        string test = "t";
    }

原来是防伪令牌的问题。我不需要这个网站的功能,所以我添加了IgnoreAnformeryTokenAttribute,它按预期工作

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddRazorPagesOptions(o =>
            o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute()));

我试过了,但由于某些原因,它不起作用。你的控制器在哪里?你发布到什么url?如果你将数据更改为只有一个EmailDataModel而不是数组,会发生什么?(类似于:{“Name”:“Name”,“Value”:“bfdbd”})
   [HttpPost]
    public void OnPost([FromBody] EmailDataModel model)
    {
        string test = "t";
    }
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddRazorPagesOptions(o =>
            o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute()));