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

Razor Pages隐藏字段值绑定到后端字段失败问题求助

问题原因及解决方案

你遇到的核心问题是:表单序列化只会收集表单元素的value属性值,而你的代码错误地修改了隐藏字段的ariaValueText属性,导致后端无法接收到数据。

修复步骤

1. 修改JavaScript赋值逻辑

把原本修改ariaValueText的代码,改成修改隐藏字段的value属性:

<script type="text/javascript">
    $(function () {
        $('#submit').on('click', function (evt) {
            const avoid = document.getElementById("avoidContainer");
            const avoidInput = document.getElementById("AvoidPseudoList");
            
            // 先清空旧值,避免重复提交时累加
            avoidInput.value = '';
            for(const child of avoid.children)
            {
                console.log(child);
                avoidInput.value += " " + child.innerHTML;
            }
            // 可选:去除首尾多余空格
            avoidInput.value = avoidInput.value.trim();
            
            evt.preventDefault();
            $.post('', $('form').serialize(), function () {
                
            });
        });
    });
</script>

2. 保留隐藏字段的原有结构

你的隐藏字段代码无需改动,asp-for会正确生成对应name属性,确保后端绑定:

<input id="AvoidPseudoList" type="hidden" aria-valuetext="" asp-for="AvoidPseudoList" >

3. 后端代码保持不变

[BindProperty]
public string AvoidPseudoList{get;set;}

验证逻辑

修改后,当你点击提交按钮时,JavaScript会把选中的用户值赋值给隐藏字段的value属性,表单序列化时会包含这个值,后端的AvoidPseudoList就能正确接收到数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:01:14