Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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#MVC模型检索值_C#_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

从C#MVC模型检索值

从C#MVC模型检索值,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我有一个C#MVC模型,如下所示 public class MyModel { ... public IEnumerable<MyModel> allDetails { get; set; } public int age { set; get; } public string gender { set; get; } public int schoolid { set; get; } ... } 现在我如何从这个模型中检索年龄、性别

我有一个
C#MVC模型
,如下所示

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是一个列表(或实现IEnumerable的smth-else),因此您必须使用foreach或另一个循环,或者只使用First()从中获取第一个值:model.allDetails.First().age

我认为您对class
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; }
    ...

}
公共类MyClass
{
...
公共IEnumerable allDetails{get;set;}
公共整数{set;get;}
公共字符串性别{set;get;}
public int schoolid{set;get;}
...
}
公共类MyModel
{
...
公共IEnumerable allDetails{get;set;}
...
}
其中,您的
MyModel
类将包含另一个包含属性的类的
IEnumerable
。稍后,您可以通过控制器填充模型

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


您还可以看到:对于您的属性名称

您视图中的代码是什么?是否确实要将数据从视图传递到
allDetails
中?该输出不会在视图中使用。我使用模块的值在控制器内部进行进一步处理。
model.allDetails.age; // This doesn't work
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; }
    ...

}