2012-06-04 88 views
0
@foreach (var item in Model) { 
    @Html.ActionLink(item.RATES.Average(item => item.rate)), "ShowRates", "Track", new { track_nr = @item.TRACK_NR, [email protected]_ID}, null) 
<br> 
} 

我想顯示速率的平均值,速率是我的數據庫中的一個表,它由整數以列表速率組成。 Visual Studio告訴我必須提供一個函數作爲參數。但我不知道如何創建該功能?Linq的平均值,參數函數

+0

我認爲這個問題可能是你有一個額外的右括號在那裏(項目後」 。率)」)。拿走它,我沒有看到這個代碼的任何問題.... –

回答

1

將這些函數添加到視圖會使它看起來很醜,我寧願將它添加爲我的模型的特性,並在將此數據發送到視圖之前在我的控制器中執行此計算。

public class AlbumViewModel 
{ 
    public int ALBUM_ID { set;get;} 
    public string TRACK_NR { set;get;} 
    public decimal AVERAGE_RATE{ set;get;} 

} 

動作方法

public ActionResult GetAlbums() 
{ 
    var albums=rep.GetAlbmums(); 
    foreach(var album in albums) 
    { 
     album.AVERAGE_RATE=album.Rates.Average(); 
    } 
    return View(albums);  
} 

在我清潔查看,

@foreach (var item in Model) 
{ 
    @Html.ActionLink(item.AVERAGE_RATE, "ShowRates", "Track", new { track_nr = @item.TRACK_NR, [email protected]_ID}, null)  
} 
+0

謝謝,這看起來更乾淨。但我仍然有問題,我必須把一個Func <>作爲參數。 我如何創建func? – user1408786

+0

@ user1408786有什麼功能?提供更真實的細節 – Shyju

+0

。平均(<費率,小數?>選擇器)(+9重載) – user1408786