我有一个图像列表,需要允许用户在从Razor视图发布时检查/取消选中每个图像。
public class Image
{
public long Id { get; set; }
public string ImageUrl { get; set; }
public string Title { get; set; }
public string Sku { get; set; }
public DateTimeOffset Created { get; set; }
}
public class ImagesViewModel {
public Image Image { get; set; }
public bool Checked { get; set; }
}
然后在Razor视图中我有@model List<ImagesViewModel>
。
我想知道这是否是最佳方法还是有更好的解决方案?
答案 0 :(得分:3)
我个人喜欢有一个父类:
pulic class ImageListViewModel
{
public List<ImageViewModel> Images { get; set; }
}
直接获得列表很好,但是根视图模型然后封装了视图的整个数据,并允许您将来添加其他属性。另外,使用基于集合的引用更容易,例如:
@Html.CheckBoxFor(m => m.Images[0].Checked)
直接公开列表并没有错;它只是有时您很快发现需要添加到ImageListViewModel的其他属性...