首页 > 解决方案 > DropDownList 允许设置 DataSource 但在 DataBind 处出错

问题描述

我有一个下拉列表控件。

<asp:DropDownList runat="server" ID="ddlMarketerContract" CssClass="form-control" />

我使用 LINQ 和 EF 在代码隐藏中设置 DataSource

ddlMarketerContract.DataSource = context.Table.Select(x => x.ColumnName).Distinct().ToList();

但是在单步调试时,当我去绑定数据时

ddlMarketerContract.DataBind();

我收到“对象引用未设置为对象的实例”错误。

不知道为什么它让我设置数据源,但在绑定控件时找不到对象。

我在另一个页面上有类似的设置,但按预期工作。我想可能是因为我没有设置 DataTextField/DataValueField,但其他页面没有设置,它仍然可以正常工作。

标签: c#asp.net

解决方案


问题出在 LINQ 语句上。在创建字符串值的通用列表后,我能够很好地绑定控件。将修改 LINQ 查询以解决问题。


推荐阅读