2011-06-19 34 views
1

我很新,在ASp.net MVC 3 Razor。 我正在将模型发送到与此模型紧密耦合的视图。 这个模型有列表,我想在该模型列表中显示特定字段的SUM。 是可能的和如何?在模型中添加值查看

回答

5

我不会做它在视图中。

我会做它在视图模型:

public class SomeViewModel 
{ 
    public ICollection<int> SomeValues { get; set; } 
    public int MySum { get { return SomeValues.Sum(x => x.SomeValue); } } 
} 

,那么该观点:

@Html.DisplayFor(model => model.MySum) 

或者你可以使用一个通用的HTML帮助,做出在任何通用的,所以你可以重新使用模型有一个IEnumerable<T>可以汇总。

总是尝试并保持您的视图清除不必要的逻辑。

+1

+1好的建议。 – aligray

+0

有没有办法把标准放在 public int MySum {get {return SomeValues.Sum(x => x.SomeValue); }} like where condtion x.value1 = 1 etc –

+0

'SomeValues.Where(x => x.SomeValue == 1).Sum(x => x.SomeValue)' – aligray

3

这应该这样做,但是没有看到你的一些代码很难确切的说:

@Model.YourList.Sum(p => p.PropertyNameYouWantToSum) 
+0

我有一个像下面 卡模型{ID,量}卡是该视图得到,我想总结的数量模型。我尝试了你的语法,但Sum没有列在intellisense –

+0

'Sum(...)'只会在IEnumerable '上。也许你可以发布一些你的代码到目前为止? – aligray

+0

十进制D = listItem.Where(P => P.Amount> 100).Sum(P => P.Amount); –

0
Decimal D = listItem.Where(P=>P.Amount>100).Sum(P=>P.Amount);