【发布时间】:2016-05-05 05:08:11
【问题描述】:
我有一个局部视图:UnderAge.cshtml 我在该局部视图中获得了Artist(模型类)的列表。我有一个Index 父视图,它显示Person(其他模型类)的列表,我想在其中添加来自部分视图UnderAge.cshtml 的内容。我检查了部分视图是否正常工作并且它有一个包含两个元素的列表,问题是当我尝试在 Index 父视图上从部分视图 UnderAge.cshtml 显示 Artist 的列表时,可能是因为索引是使用来自其他模型类(Person)的元素。
部分视图(我只放了@model 部分),它显示了艺术家模型类的列表:
@model IEnumerable<AlexMusicStore.Models.Artist>
父视图(有不同的@model)我得到了这个异常:
传入字典的模型项的类型为“System.Collections.Generic.List'1[AlexMusicStore.Models.Person]”,但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项1[AlexMusicStore.Models.Artist]'。
@model IEnumerable<AlexMusicStore.Models.Person>
<div>
@{
Html.RenderPartial("~/Views/Artists/UnderAge.cshtml", Model);
}
</div>
【问题讨论】:
-
错误是不言自明的。您的传递
Model(这是Person的集合到需要Artist集合的视图 -
更改到这一行
Html.RenderPartial("~/Views/Artists/UnderAge.cshtml", Model.Artist);所以假设你的模型有一个名为Artist的属性,它的类型是IEnumerable<AlexMusicStore.Models.Artist> -
@Reddy,模型是
IEnumerable<Person>- 它不可能有一个属性是Artist:) -
@Reddy 我会尝试使用 RenderAction,我会通知您,谢谢您的建议
-
@Reddy 它与 RenderAction 配合得很好。谢谢!!
标签: c# html asp.net-mvc razor