我正在构建一个ASP.NET C#网站,我有一个下拉列表,我绑定到我创建的对象列表.绑定下拉列表的代码如下所示:
protected void PopulateDropdownWithObjects(DropDownList dropdownlist, List<myObject>() myObjects)
{
dropdownlist.DataValueField = "ID";
dropdownlist.DataTextField = "Name";
dropdownlist.DataSource = myObjects; // my code fails here
dropdownlist.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
但是,当它遇到方法中的第3行时,会抛出异常:
DataBinding: 'myObject' does not contain a property with the name 'ID'.
Run Code Online (Sandbox Code Playgroud)
但是,我可以在调试时清楚地看到myObject.ID值:我可以在立即窗口中访问它,它是公共的,它不是空的,我拼写正确并且使用正确的大小写:
public class myObject
{
public int ID; // see? "ID" is right here!
public string Name;
public myObject(
int id,
string name
)
{
this.ID = id;
this.Name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
还有什么可以导致此错误吗?
Chr*_*ris 36
您的代码不起作用,因为它ID是一个字段,而不是一个属性.
如果您更改了类,如下所示,代码将按预期工作:
public class myObject
{
public int ID // this is now a property
{
get;
set;
}
public string Name
{
get;
set;
}
public myObject(
int id,
string name
)
{
this.ID = id;
this.Name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17362 次 |
| 最近记录: |