Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';myObject';不包含名为';ID';(不是打字错误)_C#_Asp.net - Fatal编程技术网

C# ';myObject';不包含名为';ID';(不是打字错误)

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

我正在构建一个ASP.NET C#网站,我有一个下拉列表,我正在绑定到我创建的对象列表。绑定dropdownlist的代码如下所示:

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;
    }
}