按照在 Razor Pages 中传递参数的教程,我正在尝试在 POST 请求中实现传递参数。我使用必要的参数在模型中创建 OnPost 方法
public void OnPost(string name, int age)
{
Message = $"Имя: {name} Возраст: {age}";
}
当打开带有参数传递的页面时,站点会发出 400,无论是否启用了调试,如果发生错误,它应该抛出异常消息。在调试输出中,会出现一条关于传入 POST 请求的消息。另外还有一个请求失败的标志:"success":false
Application Insights 遥测(未配置):{"name":"Microsoft.ApplicationInsights.Dev.Request","time":"2018-06-22T19:51:42.8782150Z","tags":{"ai.internal.sdkVersion ":"aspnet5c:2.1.1","ai.operation.id":"2d5e9204-426fd30dac34dcf3","ai.location.ip":"::1","ai.operation.name":"POST /auth ","ai.cloud.roleInstance":"DESKTOP-Q8TI744","ai.application.ver":"1.0.0.0","ai.internal.nodeName":"DESKTOP-Q8TI744"},"data":{ "baseType":"RequestData","baseData":{"ver":2,"id":"|2d5e9204-426fd30dac34dcf3.","name":"POST /auth","duration":"00:00: 00.0230074","success":false,"responseCode":"400","url":" http://localhost/auth ","properties":{"AspNetCoreEnvironment":"Development","httpMethod":"POST"," DeveloperMode":"true"}}}}
如果您创建 OnGet 而不是 OnPost 方法,那么一切都会正常...
如何处理 POST 请求?
页面代码可以在这里查看


在这种情况下,针对 csrf 攻击的默认保护是 400 错误的罪魁祸首。您可以在链接中找到有关此攻击的信息。但是,如果您正在开发 Hello World,而不是一个严肃的网站,那么可以关闭保护,POST 请求将起作用。