如何访问多个模型中的属性

时间:2018-02-23 13:38:50

标签: c#

加入多个模型时,我无法在控制器中访问其属性。

public class BirdModel
{
    public IEnumerable<BirdFile> BirdFils { get; set; }
    public IEnumerable<BirdFileDetail> BirdFileDetails { get; set; }
}

public partial class BirdFile
{
    public int ID{ get; set; }
    public string Name{ get; set; }
}

是否可以像这样访问

BirdModel b = new BirdModel();
b.BirdFile.ID

3 个答案:

答案 0 :(得分:1)

b.BirdFile.ID的问题在于您正在尝试访问尚未初始化的属性或对象集合。

您需要创建封装类的实例BirdModel,然后创建BirdFile集合的实例并为其添加值。从那里你可以得到具体的#Bird; BirdFile&#34;通过迭代在您的集合中,然后访问其属性。

下面的一个小例子:

class Program
{
    static void Main(string[] args)
    {

        var bm = new BirdModel();
        bm.BirdFils = new List<BirdFile>
        {
            new BirdFile {ID = 1, Name = "Bird A"},
            new BirdFile {ID = 2, Name = "Bird B"}
        };
        bm.BirdFils.ToList().ForEach(x => Console.WriteLine($"Name: {x.Name}, ID: {x.ID}"));
        Console.ReadKey();
    }
}
public class BirdModel
{
    public IEnumerable<BirdFile> BirdFils { get; set; }

}
public partial class BirdFile
{

    public int ID { get; set; }
    public string Name { get; set; }
}

答案 1 :(得分:0)

BirdModel包含BirdFile的集合,因此要访问它们,您应该写下这样的内容:

// create a new model 
BirdModel b = new BirtdModel()
// create the instance of BirdFile list
b.BirdFils = new List<BirdFile>()
// add an item (just an example)
b.BirdFils.Add(new BirdFile{ ID = 1, Name = "Bird1"}


// Access to the previously created BirdFile
BirdFile bf = b.BirdFils[0]

答案 2 :(得分:0)

为了访问BirdFile.ID,您必须遍历IEnumerable BirdFils以访问每个单独的对象。

MS Documentation with example of a foreach