模型绑定来自 Razor 页面发布表单上的路由参数
Posted
技术标签:
【中文标题】模型绑定来自 Razor 页面发布表单上的路由参数【英文标题】:Model Binding from Route Parameter on Posted Form for Razor Page 【发布时间】:2021-09-17 11:13:25 【问题描述】:我有以下 Razor 页面设置:
[BindProperties]
public class MyFormPageModel : PageModel
public int Id get; set;
public void OnGet()
public IActionResult OnPost()
return RedirectToPage("Index", new Id);
还有:
@page "Id:int?"
<form method="post">
<button type=submit>Submit</button>
</form>
如果我访问/MyForm/1
,表单+按钮会加载。
点击按钮成功发帖到/MyForm/1
但这只会从后端产生 400 错误。
后端的输出日志中也没有显示错误。
【问题讨论】:
你有av索引页吗?我在这里看不到任何东西 【参考方案1】:找到我的问题。
在这种情况下没有生成防伪令牌,因为表单是动态生成的。
如果你从一开始就在 Razor .cshtml 中有一个<form>
,Razor 会自动生成防伪令牌,但一旦你的表单是动态生成的,它就不起作用。
此页面为我的问题提供了一些出色的解决方案: https://exceptionnotfound.net/using-anti-forgery-tokens-in-asp-net-core-razor-pages/
【讨论】:
以上是关于模型绑定来自 Razor 页面发布表单上的路由参数的主要内容,如果未能解决你的问题,请参考以下文章