如何在MVC模型视图中使用泛型类型

时间:2018-09-22 08:59:10

标签: c# generics model partial-views asp.net-mvc-viewmodel

我想创建一个局部视图,该视图将与不同实体多次使用。

似乎做到这一点的方法是实现接口并使用泛型类型。但是经过大量搜索之后,我仍然不了解如何在我的情况下使用它。

我的起始代码:

public interface IEntity
{
    string Title { get; set; }
    string TextToDisplay { get; set; }
}
public class MainViewModel
{
    public Vehicule Vehicule{ get; set; }
    public Sector Sector{ get; set; }
}
public class Vehicule:IEntity
{
    public int Id{get;set;}
    public string Name{ get; set; }
}
public class Sector:IEntity
{
    public string Id{ get; set; }
    public string Name{ get; set; }
}

我看到的是部分视图的模型看起来像这样:

@model GenericModelType<IEntity>

但是现在,GenericModelType的结构如何以及如何呈现部分视图(@Html.RenderPartial("_PartialView",?????)中要放置什么参数

预先感谢

1 个答案:

答案 0 :(得分:0)

您的模型应为:

@model IEntity

和您的渲染代码:

@Html.RenderPartial("_PartialView", model);

要确定模型类型,可以使用“ is”关键字:

if (model is Sector)
    // Do something

Here是一个很好的示例。