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

ASP.NET MVC中Bootstrap 5模态框下拉列表选项不显示问题

Bootstrap 5模态框下拉列表仅显示默认项问题解决

问题根源

局部视图单独显示时下拉列表正常,但放入模态框后仅显示默认项,主要有两个原因:

  1. 模型初始化不完整:主视图中传递给局部视图的OrgDocsModel只设置了OrgId,但下拉列表的数据源DocTypesList未被填充,导致无法生成对应的<option>标签。
  2. HTML语法错误:代码中存在两处语法问题,可能干扰模态框的正常渲染:
    • 主视图模态框div的class属性多了一个多余引号:class="modal fade""
    • 局部视图中文件输入的label标签未闭合,且重复定义class属性:<label class="custom-file-label" for="OrgDoc" class="form-control"</label>

修复步骤

1. 修正HTML语法错误

  • 主视图中模态框div修正为:
    <div id="addDoc" class="modal fade">
    
  • 局部视图中文件输入的label标签修正(合并重复class并闭合标签):
    <label class="custom-file-label form-control" for="OrgDoc"></label>
    

2. 完整初始化模型的下拉数据源

不要在视图中直接创建空模型,确保DocTypesList被正确填充:

@{
    // 示例为静态数据,实际可从数据库/业务服务获取
    var docTypes = new List<SelectListItem>
    {
        new SelectListItem { Text = "文档类型1", Value = "1" },
        new SelectListItem { Text = "文档类型2", Value = "2" }
    };

    var orgDocModel = new Slingshot.Models.OrgDocsModel
    {
        OrgId = Model.First().OrgId,
        DocTypesList = docTypes
    };
}

@Html.Partial("_AddDoc", orgDocModel)

更规范的做法是在主视图对应的控制器中准备好完整的模型(包括DocTypesList),再传递给视图,避免在视图层处理数据逻辑。

3. 验证渲染结果

修复后打开浏览器开发者工具,检查模态框内的下拉列表HTML,确认是否生成了预期的<option>标签。如果仍无选项,需排查DocTypesList的数据源是否正确加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:57:17