asp.net-core - 如何强制 RazorPage RedirectToPage 执行 POST 而不是 GET
问题描述
对于 .net core RazorPages,通常将代码放在 OnGet() 或 OnPost() 函数中执行某些工作,然后将用户重定向到另一个带有一些数据(例如匿名对象)的 RazorPage:
public async Task<IActionResult> OnPost()
{
// do some work
// redirect the user to another page
return RedirectToPage("NextPage", new { user = _user, isComplete = _isComplete });
}
问题是 RedirectToPage总是将对象中的参数作为 GET 重定向,并且参数在浏览器地址栏中可见:
https://example.com/NextPage?user=Pete&isComplete=true
如何强制 RazorPage 将重定向请求作为 POST 而不是 get 发送?
解决方案
你不能。重定向只是带有 301、302 或 307 状态代码的Location
响应以及包含您要重定向到的 URL 的响应标头。到那时,就完成了。然后,客户端可以选择遵循该Location
标头中的 URL(如果它选择 - 不需要)。默认情况下,Web 浏览器会自动跟随它,但它会通过 GET 来完成。没有办法强制 POST。
推荐阅读
- r - 滑动窗口意味着与 dplyr & zoo
- sharepoint - 使用共享点代码将文件下载到我的文档文件夹,现场收到 403 禁止错误
- python - StackingRegressor 的问题
- r - 2x2 马赛克视口错误:未找到单元格
- javascript - 带有 Vue 3 的 Vuefire 抛出 Vue.use 错误
- visual-studio - IntelliSense 在 Razor Pages 项目中找不到 ViewComponent Invoke() 方法
- elm - 在 Elm 中拆分列表
- node.js - 如何在 nodejs 中运行并行 cron 作业
- bootstrap-4 - Laravel + Bootstrap 图标
- python - 制作不同聚类的条形图