如何在ASP.net MVC的另一个视图中显示一个视图的摘要数据?

时间:2015-03-23 11:59:14

标签: asp.net-mvc asp.net-mvc-4 model-view-controller

我将所有用户列在视图中的表中。我根据年龄对每个记录中的年龄细胞进行了颜色编码。红色从50到70,绿色从30到50,黄色从20到30.现在我想在另一页上显示摘要,其中包含红色,绿色和黄色的总数。

问题是我不知道如何做到这一点因为我认为viewdata,viewbag,tempdata和session数据不能用于此目的。 如果用户直接从主页点击摘要链接,我也不确定红色,绿色和黄色的值是多少。 我是否需要将数据从视图传输到视图,或者我是否需要创建动作方法以进行汇总。 请帮忙。感谢。

1 个答案:

答案 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());

如果您想在同一页面上显示摘要,只需获取数据并将其传递给您的视图。

如果要在另一条路线中显示数据,则需要创建另一种操作方法。