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

Razor Pages级联下拉框重复值问题求助

问题诊断与解决方案

核心问题

你的getCountriesAndPlants实体类将Country单独设为主键,但同一个国家对应多个工厂时,主键重复会导致Entity Framework把所有同国家的工厂实体都识别为第一个实体的副本,最终返回的列表里所有PlantName都是第一个值,这就是下拉框重复显示第一个内容的原因。

具体修复步骤

1. 修改实体类主键定义

将getCountriesAndPlants改为复合主键,因为Country和PlantName组合起来才是唯一标识:

public partial class getCountriesAndPlants
{
    [Key, Column(Order = 0)]
    public string Country { get; set; }
    [Key, Column(Order = 1)]
    public string PlantName { get; set; }
}

2. 验证查询逻辑

修改后,GetPlants方法的查询会正确返回不同的工厂数据,EF将不再返回重复内容。

3. 前端脚本检查(可选)

确认前端遍历的字段名和JSON返回的字段一致,C#对象序列化为JSON时默认是小驼峰格式,当前脚本里的item.country和item.plantName是正确的,无需修改。

额外建议

  • 实体类名建议使用PascalCase(比如GetCountriesAndPlants),符合C#编码规范。
  • 检查数据库中GetCountriesAndPlants视图/表的数据,确保同一个国家下的PlantName是唯一的,避免复合主键冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:40:42