ASP.NET Razor视图中带有复选框的图像列表

时间:2017-06-23 12:29:23

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

我有一个图像列表,需要允许用户在从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>

我想知道这是否是最佳方法还是有更好的解决方案?

1 个答案:

答案 0 :(得分:3)

我个人喜欢有一个父类:

pulic class ImageListViewModel
{
  public List<ImageViewModel> Images { get; set; }
}

直接获得列表很好,但是根视图模型然后封装了视图的整个数据,并允许您将来添加其他属性。另外,使用基于集合的引用更容易,例如:

@Html.CheckBoxFor(m => m.Images[0].Checked)

直接公开列表并没有错;它只是有时您很快发现需要添加到ImageListViewModel的其他属性...