Razor表单提交始终返回初始值:问题原因咨询
问题原因及解决办法
核心问题1:表单控件名称与模型属性不匹配
你的输入框name属性设为了hi,但后台OnPost方法接收的是Yolonese类型参数,该模型的属性是test。ASP.NET Core的模型绑定依赖表单控件name与模型属性名匹配实现,当前输入内容无法正确绑定到model.test,后台自然只能拿到模型默认值"test"。
核心问题2:页面处理器名称不匹配
表单里用了asp-page-handler="Button_Submit",这会指定提交到名为Button_Submit的处理器方法,但你的后台只有OnPost方法,没有对应的OnPostButton_Submit方法,导致提交时无法命中正确处理逻辑,绑定行为异常。
解决步骤
修正输入框的name属性,让它和模型属性对应:
<!-- 方式1:手动修改name --> <input value="@Model.yolonese.test" name="yolonese.test" /> <!-- 方式2:使用asp-for标签助手(推荐,自动处理绑定) --> <input asp-for="yolonese.test" />修正处理器方法匹配关系,二选一即可:
- 去掉表单的
asp-page-handler,让它默认提交到OnPost方法:<form method="post" enctype="multipart/form-data"> - 后台添加对应处理器方法,匹配表单的
Button_Submit:public void OnPostButton_Submit(Yolonese model) { // 处理提交逻辑 }
- 去掉表单的
可选:用标签助手简化表单,自动处理绑定细节,避免手动编写出错:
<form method="post" enctype="multipart/form-data" asp-page-handler="Button_Submit"> <input asp-for="yolonese.test" /> <input style="width: 30% !important; opacity: 0.2;" value="Weiter" class="baseButton" type="submit"> </form>
修改完成后,输入内容就能正确绑定到后台模型,提交后可获取修改后的值。
内容的提问来源于stack exchange,提问作者inno
相关产品推荐
相关产品推荐

