多选字段手动录入数据无需拉取数据库及国家选项undefined问题咨询
问题根因
你用到的自定义dropdown组件设置了property="item.Name"属性,说明组件需要读取数组元素的Name字段作为展示文本,但你的GetCountry接口返回的是纯字符串集合,没有Name属性,组件找不到对应字段自然会显示undefined。
解决方案
有两种修改方式可选:
方式一:修改后端接口返回结构,适配原有前端配置
调整CountryApiController的GetCountry方法,返回带Name属性的对象集合,和你原有省下拉接口的返回结构保持一致:
[HttpGet] [ActionName("GetCountry")] public IEnumerable<object> GetCountry() { return new List<object> { new { Name = "USA" }, new { Name = "England" } }; }
该方案不需要修改前端cshtml代码,直接适配现有组件配置。
方式二:修改前端组件配置,适配现有后端返回
如果不想改动后端代码,直接调整dropdown的property属性即可,因为后端返回的每个元素本身就是要展示的国家名称,不需要读取子字段:
<dropdown required placeholder="Select Country..." selected="selectedCountry" property="item" method="api/CountryApi/GetCountry"> </dropdown>
只需要把原来的property="item.Name"改为property="item"即可正常显示国家名称。
后续联动逻辑补充
- 选中国家后添加change监听事件,若选中的是需要沿用旧逻辑的国家,保持原有省、区下拉调用后端接口的逻辑即可
- 若选中的是需要省、区值相同的国家,直接在前端给省、区下拉赋相同值,不需要调用后端接口,也能满足你仅在html页面处理该逻辑的需求。
内容的提问来源于stack exchange,提问作者burak
相关产品推荐
相关产品推荐

