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

如何在循环中为DropDownListFor设置默认选中值?

解决方案:修复下拉列表选中状态不生效的问题

看起来你遇到的问题主要来自两个关键点:循环索引的错误使用,以及没有正确指定下拉列表的选中值(还有一处拼写小错误)。咱们一步步来解决:

1. 修正循环遍历的对象

你当前的循环是基于MarriageList.Count来生成下拉框,但你的需求是给每个Person显示一个对应的婚姻状态下拉框,所以循环应该遍历PersonList,而不是婚姻状态列表。

2. 显式指定选中值并修正拼写错误

你视图代码里的Model.MarriagesList是拼写错误(模型里的属性是MarriageList,多了一个s),这会导致下拉列表无法正确加载选项;同时,在创建SelectList时显式传入当前Person的SelectesState作为选中值,能确保选中状态准确生效。

修正后的视图代码:

@for (int i = 0; i < Model.PersonList.Count; i++)
{
    @Html.DropDownListFor(
        // 绑定当前Person的选中状态
        m => m.PersonList[i].SelectesState,
        // 生成选项列表,第四个参数是选中值
        new SelectList(Model.MarriageList, "ID", "Name", Model.PersonList[i].SelectesState),
        "请选择婚姻状态" <!-- 可选:添加默认提示项 -->
    )
}

额外检查点

  • 确保在控制器中,MyPageModel的PersonList已经被正确实例化,并且每个Person对象的SelectesState都设置了有效的值(0/1/2)。
  • 确认MarriageList已经被正确填充了所有婚姻状态选项,没有空值或ID不匹配的情况。

这样修改后,每个下拉框都会根据对应Person的SelectesState值自动选中对应的选项了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:02:37