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