【问题标题】:How can I show summary data from one view in another view in ASP.net MVC?如何在 ASP.net MVC 的另一个视图中显示来自一个视图的摘要数据?
【发布时间】:2015-03-23 11:59:13
【问题描述】:

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

问题是我不知道该怎么做,因为我认为 viewdata、viewbag、tempdata 和 session 数据不能用于此目的。 如果用户直接从主页单击摘要链接,我也不确定红色、绿色和黄色的值是多少。 我需要在视图之间传输数据还是需要为摘要创建操作方法。 请帮忙。谢谢。

【问题讨论】:

  • 总结什么?您需要根据您的模型构建一个新视图。
  • 所以例如有 100 条记录。我在视图中声明了三个变量,即红色、绿色、黄色。如果他们的年龄是 50 到 70 岁,我将行的年龄单元格设为红色,依此类推。最后我想在摘要视图/页面中显示红色、绿色和蓝色的值。

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


【解决方案1】:

要获得摘要,您可以使用 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());

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

如果您想在另一个路由中显示数据,那么您需要创建另一个操作方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 2015-12-22
    • 1970-01-01
    • 2021-09-01
    • 2019-05-10
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多