显示第一个结果MVC3剃刀视图的图像值

时间:2013-02-26 22:05:42

标签: c# asp.net-mvc-3 linq razor

我有这个在主页上呈现的局部视图。我希望能够在视图中的十个结果列表上方显示十个结果中的第一个结果的图片。 我在控制器下面

    public ActionResult _ChartHome()
    {
        var ChAd = db.Charts
        .Where(v => v.ChOk == true)
        .OrderBy(v => v.ChPosition)
           .Take(10);
        return PartialView(ChAd);
    }

查看

 <div class="thumb imgblock">   
 <div class="imlk">
 <img src="/images/@d.img?width=286&height=140" class="imlink" />
 </div> 

 @foreach (var d in Model)

 <div class="clear top5widg">
 <p class="musictitle">@d.ChTitle</p>
 <span class="chartno">#@d.ChPosition</span>
 <span class="artistname">By<br/>@d.ChArtist</span> 
 </div>       
  }
 </div>

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

您可以使用ViewBag保存第一个项目的值

public ActionResult _ChartHome()
    {
        var ChAd = db.Charts
        .Where(v => v.ChOk == true)
        .OrderBy(v => v.ChPosition)
           .Take(10);
        ViewBag.First = ChAd.FirstOrDefault();
        return PartialView(ChAd);
    }

对视图代码执行以下操作

 @{
   var first = (FirstObjectType)ViewBag.First;
}

 <div class="thumb imgblock">   
 <div class="imlk">
 <img src="/images/@first.img?width=286&height=140" class="imlink" />
 </div> 

 @foreach (var d in Model)

 <div class="clear top5widg">
 <p class="musictitle">@d.ChTitle</p>
 <span class="chartno">#@d.ChPosition</span>
 <span class="artistname">By<br/>@d.ChArtist</span> 
 </div>       
  }
 </div>

答案 1 :(得分:0)

确保在视图中定义模型,然后您应该能够执行此操作:

@{
  var imgPath = Model.FirstOrDefault() == null ? "" : Model.FirstOrDefault().img; 
}
@if(imgPath != ""){
   <img src="/images/@imgPath ?width=286&height=140" class="imlink" />
}