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

.NET Core HTML表单无法绑定到返回新视图的控制器及方法

排查Razor表单单选按钮问题的几个思路

嘿,我太懂那种盯着一个小问题卡好几天的憋屈感了!先帮你把代码格式化清晰,然后咱们捋几个常见的坑,说不定就能戳中你的问题~

你提供的代码(格式化后)

<div class="modal-body">
    @using (Html.BeginForm("Index", "Study", FormMethod.Post))
    {
        <div class="row">
            <div class="col-sm-12">
                <label>question</label>
                <div class="radio">
                    <label><input type="radio" name="Mhd" value="1">
                    <!-- 这里你没写完后续代码,比如单选按钮的文本、闭合标签等 -->

几个大概率的问题方向

  • 单选按钮组的一致性问题:同组的单选按钮必须共享完全相同的name属性(这里是Mhd),如果后面的单选按钮name写错了,就会出现无法互选、提交后值不对的情况,一定要检查所有同组单选的name。
  • 强类型绑定替代手动HTML:与其手动写<input type="radio">,不如用Razor的Html.RadioButtonFor辅助方法,能避免拼写错误,还能自动绑定模型值:
    @model YourNamespace.YourStudyModel
    <!-- 假设模型里有 public int Mhd { get; set; } -->
    <div class="radio">
        <label>@Html.RadioButtonFor(m => m.Mhd, 1) 选项1</label>
    </div>
    <div class="radio">
        <label>@Html.RadioButtonFor(m => m.Mhd, 2) 选项2</label>
    </div>
    
  • 表单提交的模型匹配:后台的StudyController里的Index Action,要确保接收的参数和表单控件的name一致。比如如果是强类型模型,模型类里必须有Mhd属性;如果是单独参数,要写public ActionResult Index(int Mhd)。
  • 语法完整性问题:你提供的代码没写完,比如<input>标签没闭合、缺少</label>、</div>和</form>的闭合标签,这些小语法错误可能导致页面渲染异常,进而影响表单功能,一定要检查整个表单的HTML结构是否完整。
  • 调试小技巧:打开浏览器开发者工具(F12),查看渲染后的HTML,检查单选按钮的name、value是否正确,表单的action属性是不是指向了/Study/Index,提交表单时可以看网络请求里的Form Data,确认Mhd值是否正确发送。

内容的提问来源于stack exchange,提问作者UncountedBrute

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:56:45