0

我有一个C# MVC Model如下;

public class MyModel
{
    ...
    public IEnumerable<MyModel> allDetails { get; set; }
    public int age { set; get; }
    public string gender { set; get; }
    public int schoolid { set; get; }
    ...
}

现在想从中检索数据allDetails。我该怎么做 ?

controller;

model.allDetails = MyDetails.getAllDetails(); // Saves all details in the Model

现在我如何从中age, gender and school检索model;我的方法如下(但它不起作用)

model.allDetails.age; // This doesn't work
4

2 回答 2

2

在您的代码中 model.allDetails 是一个列表(或其他实现 IEnumerable 的其他东西),因此您必须使用 foreach 或另一个循环,或者只是 First() 从中获取第一个值:model.allDetails.First().age

于 2013-03-26T08:47:44.103 回答
0

我认为您的课程设计MyModel错误,您可能应该有两个课程,例如:

public class MyClass
{
        ...
        public IEnumerable<MyModel> allDetails { get; set; }
        public int age { set; get; }
        public string gender { set; get; }
        public int schoolid { set; get; }
        ...
}


public class MyModel
{
    ...
    public IEnumerable<MyClass> allDetails { get; set; }
    ...

}

您的MyModel类将包含IEnumerable您的其他包含属性的类。稍后您可以通过控制器填充模型。

在您当前的MyModel类中,您保留类本身的 IEnumerable,因此该类的每​​个对象都将具有另一个 IEnumerable,依此类推。

您可能还会看到:属性名称的C# 编码约定(C# 编程指南)

于 2013-03-26T08:49:58.697 回答