从派生类中显示视图中的属性

时间:2015-03-07 16:41:29

标签: c# model-view-controller

我试图了解继承和多态,并遇到一个简单的问题。

我有一个抽象基类和两个派生类。我创建了一个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?
}

0 个答案:

没有答案