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

如何从通用数据类型填充SelectListItem?附数据库数据转换代码示例

优化后的下拉框数据转换代码

嘿,我看你正在写从API获取数据并转换为SelectListItem列表(用于填充视图下拉框)的代码,我帮你把这段代码补全并优化得更简洁规范:

// 从API获取LocationType数据列表
var locationTypes = await APIHelper.GetAsync<List<LocationType>>(url);

// 直接通过LINQ转换为SelectListItem列表,同时处理空值避免异常
var items = locationTypes?.Select(locationType => new SelectListItem
{
    Value = locationType.LocationTypeId.ToString(),
    Text = locationType.Name // 补全你原本省略的Name字段
})?.ToList() ?? new List<SelectListItem>();

几点实用说明:

  • 简化写法:直接用LINQ的Select投影生成SelectListItem对象,不需要先实例化空列表再调用AddRange,代码更紧凑易读
  • 空值安全:用?.操作符处理locationTypes可能为null的情况,再通过??提供默认的空列表,避免运行时空引用异常
  • 适配场景:明确把Value设为Id的字符串形式(符合下拉框提交值的常规要求),Text绑定实体的名称字段,完美匹配视图下拉框的渲染逻辑

如果你的业务需要添加默认提示选项(比如“请选择”),可以直接在生成的列表前插入:

items.Insert(0, new SelectListItem { Value = "", Text = "请选择位置类型" });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:06:27