0

ホームページでレンダリングされるこの部分ビューがあります。ビューの 10 件の結果のリストの上に、10 件の結果の最初の画像を表示できるようにしたいと考えています。私はコントローラーに以下を持っています

    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>

どんな助けでも大歓迎です

4

2 に答える 2

0

ビューでモデルを定義していることを確認してください。そうすれば、これを実行できるはずです。

@{
  var imgPath = Model.FirstOrDefault() == null ? "" : Model.FirstOrDefault().img; 
}
@if(imgPath != ""){
   <img src="/images/@imgPath ?width=286&height=140" class="imlink" />
}
于 2013-02-26T22:20:28.953 に答える
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>
于 2013-02-26T22:11:15.060 に答える