2012-06-04 44 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