C# 如何在razor页面中处理POST请求
我试图将数据发布到Razor页面,但OnPost从未被调用。它可以与OnGet一起使用,但不能使用POST(出于某些原因) 我尝试过定义HttpPost,但运气不好 我用邮递员来测试 第页: 型号: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]
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()));