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

ASP.NET Core中DropdownList返回Undefined问题求助

问题解决建议

问题根源

出现下拉框选项数量正确但显示undefined的核心原因:

  • 后端返回的SelectList对象序列化后,前端期望的Value/Text字段名可能不匹配(ASP.NET Core默认采用驼峰式序列化,字段会变成value/text);
  • 或者Stock实体类的Name属性不存在、拼写错误,导致SelectList生成的文本值为空;
  • 也可能是SelectList的嵌套结构导致前端无法直接获取到目标字段。

解决方法

方法1:返回简化的匿名对象列表(推荐)

修改后端GetStockByCat方法,直接构造前端需要的键值对结构,避免SelectList的复杂嵌套:

[HttpPost]
public IActionResult GetStockByCat(int CatId)
{
    var stocks = _dbcontext.Stock.Where(s => s.CategoryId == CatId).ToList();
    // 直接生成前端需要的结构
    var stockOptions = stocks.Select(s => new 
    {
        Value = s.StockId.ToString(),
        Text = s.Name
    });
    return Json(stockOptions);
}

前端代码无需修改,此时返回的JSON数据会直接包含Value和Text字段,与前端遍历逻辑完全匹配。

方法2:适配前端字段名(若坚持使用SelectList)

如果不想修改后端,先通过浏览器开发者工具的Network面板查看GetStockByCat请求返回的JSON数据,确认字段名是否为驼峰式的value和text,然后修改前端循环逻辑:

for (var x = 0; x < data.length; x++) {
    markup += '<option value="' + data[x].value + '">' + data[x].text + '</option>';
}

额外检查点

  • 确认Stock实体类中存在Name属性,且数据库中该字段有有效数据,无拼写错误(比如是否误写为StockName);
  • 用浏览器开发者工具查看请求返回的JSON内容,直接验证每个选项的字段值是否正确,这是快速定位问题的关键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:18:32