C# 如何在视图中调用派生类的属性?

C# 如何在视图中调用派生类的属性?,c#,asp.net-core,model-view-controller,C#,Asp.net Core,Model View Controller,我有两个从抽象类派生的模型,因为我需要将它们存储在一个列表中并按日期时间排序。 继承如下所示: public abstract class BaseActivity { public DateTime DateTime { get; set; } } public class Call : BaseActivity { //props// } public class Message : BaseActivi

我有两个从抽象类派生的模型,因为我需要将它们存储在一个列表中并按日期时间排序。 继承如下所示:

    public abstract class BaseActivity
    {
        public DateTime DateTime { get; set; }
    }
    public class Call : BaseActivity
    {
        //props//
    }
    public class Message : BaseActivity
    {
        //props//
    }
现在我使用viewModel,并将这个抽象类作为属性

    public class ViewModel
    {
        //...other props...//
        public IEnumerable<BaseActivity> BaseActivities { get; set; }
    }

BaseActivity
中有一个名为
DisplayProperties()
的抽象方法不会容易得多吗?子类将有自己的实现,并显示它们所显示的内容want@Cleptus听起来真的很棒,但是我应该将html语法混合到域模型中吗?或者可能将整个继承镜像到ViewModels中,并在BaseActivityViewModel中添加此方法?因为抽象类有两个派生类,在视图中,必须使用switch或if语句检查类型,然后获取相关属性,除非在服务器端执行此操作。此外,如果希望通过
活动
获取属性值,可以使用反射方法code:
@activity.GetType().GetProperty(“属性名称”).GetValue(activity,null)
@foreach (var activity in Model.BaseActivities )
{
    switch (activity)
    {
        case Call call:
                 @* display Call properties *@
            break;
        case Message message:
                 @* display Message properties *@
            break;
    }
}