我试图了解继承和多态,并遇到一个简单的问题。
我有一个抽象基类和两个派生类。我创建了一个viewmodel,其中包含一个基类类型的列表,我将其传递给视图。
我的问题是如何在视图中显示派生类的属性?
模型
public abstract class Card
{
public string Name { get; set; }
public int Manacost { get; set; }
}
public class Spell : Card
{
public string Description { get; set; }
}
public class Minion: Card
{
public int AttackPower { get; set; }
public int Health { get; set; }
}
Viewmodel传递给视图
public class DeckbuilderVM
{
public List<Card> CardLibary { get; set; }
}
查看
@model.DeckbuilderVM
@foreach (var item in Model.CardLibary)
{
//Can acces these
<p>Name: @item.Name</p>
<p>Manacost: @item.Manacost</p>
//Can't acces these
<p>Attactpower: @item.AttackPower </p>
<p>Health: @item.Health </p>
//How to acces property of the derived classes?
}