You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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方法,导致提交时无法命中正确处理逻辑,绑定行为异常。

解决步骤

  1. 修正输入框的name属性,让它和模型属性对应:

    <!-- 方式1:手动修改name -->
    <input value="@Model.yolonese.test" name="yolonese.test" />
    <!-- 方式2:使用asp-for标签助手(推荐,自动处理绑定) -->
    <input asp-for="yolonese.test" />
    
  2. 修正处理器方法匹配关系,二选一即可:

    • 去掉表单的asp-page-handler,让它默认提交到OnPost方法:
      <form method="post" enctype="multipart/form-data">
      
    • 后台添加对应处理器方法,匹配表单的Button_Submit:
      public void OnPostButton_Submit(Yolonese model)
      {
          // 处理提交逻辑
      }
      
  3. 可选:用标签助手简化表单,自动处理绑定细节,避免手动编写出错:

    <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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:52:11