在包含其他模型

时间:2016-05-05 05:08:12

标签: c# html asp.net-mvc razor

我有一个部分视图:UnderAge.cshtml我在该局部视图中获得了Artist(模型类)的列表。我有一个Index父视图,它显示Person(其他模型类)的列表,我想在其中添加部分视图UnderAge.cshtml中的内容。我已经检查过部分视图是否正常工作,它有两个元素的列表,问题是当我尝试在{{1}上显示部分视图Artist的{​​{1}}列表时父视图,可能是因为Index使用了其他模型类(Person)中的元素。

部分视图(我只是放置UnderAge.cshtml部分),它显示了Artist模型类的列表:

Index

父视图(具有不同的@model)并且我得到此异常:

  

传递到字典中的模型项的类型为' System.Collections.Generic.List' 1 [AlexMusicStore.Models.Person]',但此字典需要类型为&的模型项#39; System.Collections.Generic.IEnumerable' 1 [AlexMusicStore.Models.Artist]'

@model IEnumerable<AlexMusicStore.Models.Artist>

1 个答案:

答案 0 :(得分:0)

试试这个,

@model IEnumerable<AlexMusicStore.Models.Artist>

<div>

    @Html.Partial("UnderAge"));

</div>

OR

您也可以创建这样的模型,

 public class Person
    {      
          public IEnumerable<ArtistModel> Artists{ get;  set;} //Passed to Partial
    }

    public class ArtistModel
    {      
           //your values here
    }

然后在父视图中显示如下

@model IEnumerable<AlexMusicStore.Models.Person>

<div>
@{ 
    Html.RenderPartial("~/Views/Artists/UnderAge.cshtml", Model.Artists);
}
</div>