C# ';myObject';不包含名为';ID';(不是打字错误)
我正在构建一个ASP.NET C#网站,我有一个下拉列表,我正在绑定到我创建的对象列表。绑定dropdownlist的代码如下所示:C# ';myObject';不包含名为';ID';(不是打字错误),c#,asp.net,C#,Asp.net,我正在构建一个ASP.NET C#网站,我有一个下拉列表,我正在绑定到我创建的对象列表。绑定dropdownlist的代码如下所示: protected void PopulateDropdownWithObjects(DropDownList dropdownlist, List<myObject>() myObjects) { dropdownlist.DataValueField = "ID"; dropdownlist.DataTextField = "Nam
protected void PopulateDropdownWithObjects(DropDownList dropdownlist, List<myObject>() myObjects)
{
dropdownlist.DataValueField = "ID";
dropdownlist.DataTextField = "Name";
dropdownlist.DataSource = myObjects; // my code fails here
dropdownlist.DataBind();
}
但是,我在调试时可以清楚地看到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;
}
}
是否还有其他原因会导致此错误?您的代码将无法工作,因为
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;
}
}
不,我没有看到属性名称ID。我看到的是字段名称ID。也许您需要重新评估“事实”的定义。)对我来说,这个问题是如此清晰,以至于它“重复”了一个问题!你是在用第二人称自言自语吗?@Garrisonely是的,为什么有人在回答他们的帖子时会用“你”?潜行者。我的答案用“你”而不是“一”。这个答案不是这样用“你”。通常,回答他/她自己问题的用户会以某种方式承认这一点。通常在我的头撞上某个东西几天后,只是为了阻止其他人的痛苦,他们可能会经历与我相同的问题(但我同意他应该先检查是否有重复)。
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;
}
}