如何将模型属性指定为部分视图的模型数据?
我有一个名为Album的类,并且在其中定义了一些IEnumerable属性。我正在使用Dapper MultiMapping
来填充这些属性
相册模型
namespace MusicStore.Model
{
public class Album : IAlbum
{
int ID{get;set;}
string Name {get;set;}
...
IEnumerable<IPhoto> Photos{ get; set; }
IDictionary<IArtistType, IList<IArtist>> Artists { get; set; }
}
public class Photos : IPhoto
{
int ID{get;set;}
string URL {get;set;}
...
}
}
相册视图
@model MusicStore.Entity.IAlbum
...
@Partial("_PhotosPartial", @Model.Photos)
...
_PhotosPartial partial view
@model IEnumerable<MusicStore.Entity.IPhoto>
...
@if(Model!=null)
{
@foreach(var item in Model)
{
<img id='img_@item.ID' src='\@item.URL' alt='@item.Title' />
}
}
...
我想使用属性IEnumerable<IPhoto> Photos
作为局部视图的模型。
如果
IEnumerable<IPhoto> Photos
至少有一个条目,则此方法有效 在其中,否则发生异常,它说我正在通过IAlbum
作为期望的_PhotosPartial
部分视图的模型IEnumerable<IPhoto>
作为模型。
为什么我收到此错误?
我不喜欢使用ViewModel'因为拥有照片集的相册比使用具有相册和照片列表的单独ViewModel更有意义,例如
public class AlbumViewModel
{
public IAlbum Album { get; set; }
IEnumerable<IPhoto> Photos{ get; set; }
IDictionary<IArtistType, IList<IArtist>> Artists { get; set; }
}