Razor Pages多表单问题:表单为何指向OnPost而非指定方法?
解决Razor Pages多表单提交handler指向错误的问题
问题出在asp-page-handler的属性值写法不符合Razor Pages的命名约定:
1. 修正前端表单的handler属性
Razor Pages会自动识别OnPost{HandlerName}格式的方法,所以你不需要在asp-page-handler里写完整的OnPostUpdateUnits,只需要写后缀部分UpdateUnits即可。
正确的表单代码:
<form method="post" asp-page-handler="UpdateUnits"> <select asp-for="Units" asp-items="Model.UnitsSet"></select> <br /><button type="submit">Update Units</button> </form>
2. 确保后端方法符合规范
后端的处理方法必须遵循OnPost{HandlerName}的命名规则,且为public访问级别,示例代码:
public IActionResult OnPostUpdateUnits() { // 这里写你的更新逻辑 return Page(); }
额外检查项
- 确认你的页面模型类继承自
PageModel - 表单的
method属性确实设置为post(你的代码已经满足) - 页面中没有其他元素手动设置
name="handler"的参数值,避免冲突
内容的提问来源于stack exchange,提问作者PharaohS
相关产品推荐
相关产品推荐

