我想为mvc页面做一个这样的模型:
public class Body
{
public int Id { get; set; }
public class Hand
{
public List<Fingers> fingers { get; set; }
}
public class Foot
{
public List<Toes> toes { get; set; }
}
public class Head
{
public Nose nose {get; set;}
public List<Ears> ears { get; set; }
public List<Eyes> eyes { get; set; }
}
}
那就上这样的手指课:
public class Fingers
{
public int Id { get; set; }
public string Description { get; set; }
}
然后在我的视图中这样访问它:
@model Models.Body
@foreach (var fingers in Model.Hand.Fingers)
{
@Html.RadioButton("fingerList", fingers.Description)
}
我做错模特了吗?现在vs不能识别
Model.Hand
中的foreach
,更不用说Model.Hand.Fingers
。我不想创建@model
IEnumerable
,因为此页应该只显示一个person
,但它可以有多个fingers
、toes
等列表。 最佳答案
您的Body
类上没有属性Hand
。
除此之外,你的hand类有fingers
但是在razor中你用Fingers
来引用它。
我不知道您是否真的打算将类嵌套,但是您需要为您想要的类在Body
类中添加属性(遵循您的属性大小写约定):
public class Body
{
public int Id { get; set; }
public Hand hand { get; set; }
public Foot foot { get; set; }
public Head head { get; set; }
public class Hand
{
public List<Fingers> fingers { get; set; }
}
public class Foot
{
public List<Toes> toes { get; set; }
}
public class Head
{
public Nose nose {get; set;}
public List<Ears> ears { get; set; }
public List<Eyes> eyes { get; set; }
}
}
然后需要引用与属性大小写匹配的属性,而不是类名:
@model Models.Body
@foreach (var fingers in Model.hand.fingers)
{
@Html.RadioButton("fingerList", fingers.Description)
}
我也认为你的大小写不正确,但这不是你的问题所在。