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

ASP.NET后端无法获取DropDownList选中值问题求助

问题解决:DropDownList选中值无法获取的原因及修复

你的问题核心出在Page_Load方法的逻辑上——每次页面回发(PostBack)时,你都会重新填充下拉框,直接覆盖了用户选中的值。

错误代码分析

当前Page_Load中,无论是否是回发请求,都会执行PopulateDepartmentDropdown()和PopulatePartNumberDropdown()。这会清空下拉框原有选项并重新添加,导致ASP.NET无法从ViewState中恢复用户之前选中的状态,最终读取SelectedValue时返回空值。

修复方案

修改Page_Load方法,仅在**首次加载页面(非回发)**时填充下拉框:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack) // 仅页面第一次加载时初始化下拉框
    {
        PopulateDepartmentDropdown();
        PopulatePartNumberDropdown();
    }
}

原理说明

ASP.NET WebForms的页面生命周期中,回发时会先执行Page_Load,再处理按钮点击事件。如果在回发时重新填充下拉框,会先清除用户选中的选项,之后读取SelectedValue自然为空。通过IsPostBack判断,确保下拉框只在首次加载时初始化,回发时保留用户的选择状态,就能正确获取选中值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:17:07