如何使用剃刀语法对视图模型项进行排序

时间:2015-03-20 04:50:02

标签: c# asp.net-mvc razor

我循环浏览Model.Images并显示缩略图库。我想要"主要"图像始终首先显示在页面上。 "主要" image是我在对象Image中设置的标志/属性。它被称为IsMain,它是一个布尔值。我不确定如何在后面的代码中对其进行排序或在剃刀中对页面进行排序,以便将属性IsMain设置为true的图像始终首先显示?

这里是我显示所有图像的地方。

<ul id="sortable">
  @foreach (var image in Model.Images) {
  <li class="col-sm-6 col-md-4">

    <div class="thumbnail">
      <a class="close" href="#">×</a>
      @{ var base64 = Convert.ToBase64String(image.ImageThumbnail); var thumbSrc = String.Format("data:image/gif;base64,{0}", base64); var base64Modal = Convert.ToBase64String(image.Image); var imgSrcModal = String.Format("data:image/gif;base64,{0}", base64Modal);
      var imageId = "pop" + image.YogaSpaceImageId; var imagesourceId = "imagesource" + image.YogaSpaceImageId; }
      <a class="image" id="@imageId" href="" data-toggle="modal" data-target="#myModal">
        <img id="@imagesourceId" src="@thumbSrc" data-imagesrc="@imgSrcModal" alt="image not found" width="203" height="136" />
      </a>
      <div class="caption">
        <h3>Thumbnail label</h3>
        <p>...</p>
        <p><a href="#" class="btn btn-primary" role="button">Button</a>  <a href="#" class="btn btn-default" role="button">Button</a>
        </p>
      </div>
    </div>

  </li>
  }
</ul>

1 个答案:

答案 0 :(得分:5)

假设Model.ImagesList<Image>,那么

images = Model.Images.OrderBy(i => i.IsMain).ToList();  // I think I got the syntax right, may have to check that.

应该这样做。

这可以在控制器或视图中完成,无论哪种更适合您的架构。