我将所有用户列在视图中的表中。我根据年龄对每个记录中的年龄细胞进行了颜色编码。红色从50到70,绿色从30到50,黄色从20到30.现在我想在另一页上显示摘要,其中包含红色,绿色和黄色的总数。
问题是我不知道如何做到这一点因为我认为viewdata,viewbag,tempdata和session数据不能用于此目的。 如果用户直接从主页点击摘要链接,我也不确定红色,绿色和黄色的值是多少。 我是否需要将数据从视图传输到视图,或者我是否需要创建动作方法以进行汇总。 请帮忙。感谢。
答案 0 :(得分:0)
要获取摘要,您可以使用Linq在数据库中执行查询以获取不同的计数。
定义了一个虚拟类来表示数据。
// Class definition
class Person
{
public int age { get; set; }
public Person(int age){
this.age = age;
}
}
创建一个表示数据集合的列表
// A test 'dataset'
var people = new List<Person>
{
new Person(25),
new Person(45),
new Person(55),
new Person(65)
};
查询您的数据集
// Do a query with Linq, I'll query the List<Person>
// yellow = age 20 to 30
var yellowCount = people.Count(p => p.age >= 20 && p.age < 30 );
// green = age 30 to 50
var greenCount = people.Count(p => p.age >= 30 && p.age < 50 );
// red = age 50 to 70
var redCount = people.Count(p => p.age >= 50 && p.age < 70 );
// then use the data in the variables to show the count.
Console.WriteLine("Yellow:" + yellowCount.ToString());
Console.WriteLine("Green:" + greenCount.ToString());
Console.WriteLine("Red:" + redCount.ToString());
如果您想在同一页面上显示摘要,只需获取数据并将其传递给您的视图。
如果要在另一条路线中显示数据,则需要创建另一种操作方法。