博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习ASP.NET Core Razor 编程系列十七——分组
阅读量:7071 次
发布时间:2019-06-28

本文共 2699 字,大约阅读时间需要 8 分钟。

学习ASP.NET Core Razor 编程系列目录

 

 

 

    在本教程中,我们来学习如何进行分组。

    通过前面的教程学习,你可以实现一个简单的书籍管理系统。 在本教程将学习如何创建具有简单分组功能的页面。

一、创建About页面来显示书籍统计信息

    在 书籍管理系统的“关于”页上,将显示每个出版社有多少书籍。 这要求在分组上再进行分组和简单计算。 要完成此操作,需要执行以下操作:

  • 创建一个视图模型类,该视图类是需要传递到该视图的数据的抽象。
  • 修改关于视图。

二、 创建视图模型

  1. 在Visual Studio 2017的解决方案资源管理器的Model文件夹中创建ViewModels文件夹。

 

       2. 在新的文件夹中,添加EnrollmentPublishGroup.cs类文件,并且写下代码:

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks; namespace RazorMvcBooks.Models.ViewModels{    public class EnrollmentPublishGroup    {        public string Publish { get; set; }        public int BooksCount { get; set; }     }}

三、更新“About”页面模型

    在Visual Studio 2017的解决方案资源管理器的,找到 Pages/About.cshtml.cs 文件,并且修改代码如下:

 

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Microsoft.EntityFrameworkCore;using Microsoft.AspNetCore.Mvc.RazorPages;using RazorMvcBooks.Models.ViewModels; namespace RazorMvcBooks.Pages{    public class AboutModel : PageModel    {        public string Message { get; set; }        public async Task OnGetAsync()        {            Message = "Your application description page.";             IQueryable
data = from book in _context.Book group book by book.Publishing into publishGroup select new EnrollmentPublishGroup() { Publish = publishGroup.Key, BooksCount = publishGroup.Count() }; BookGroup = await data.AsNoTracking().ToListAsync(); } private readonly RazorMvcBooks.Models.BookContext _context; public AboutModel(RazorMvcBooks.Models.BookContext context) { _context = context; } public IList
BookGroup { get; set; } }}

    LINQ 语句按出版社对书籍实体进行分组,计算每组中实体的数量,并将结果存储在 EnrollmentPublishGroup 视图模型对象的集合中。

    注意:EF Core 当前不支持 LINQ group 命令。 在上述代码中,所有学生记录均从 SQL Server 返回。 group 命令应用于 Razor 页面应用,而不是应用于 SQL Server。 EF Core 2.1 支持此 LINQ group 运算符,并在 SQL Server 上进行分组。

四、修改“About”Razor 页面

    在Visual Studio 2017的解决方案资源管理器的找到 Pages/About.cshtml 文件中的代码替换为以下代码:

@page@model AboutModel@{    ViewData["Title"] = "书籍统计信息";}

@ViewData["Title"]

@Model.Message

Use this area to provide additional information.

书籍统计信息

@foreach (var item in Model.BookGroup) {
}
出版社 书籍数量
@Html.DisplayFor(modelItem => item.Publish) @item.BooksCount

五、运行结果

    在Visual Studio 2017的中按F5运行应用,并且点击“关于”页面。 表格中会显示每个出版社的书籍计数。

 

 

转载地址:http://vxkml.baihongyu.com/

你可能感兴趣的文章
SQLite第二课 源码下载编译
查看>>
ibatis动态生成列时的列名无效
查看>>
通用汽车新增130辆测试无人车,配激光雷达
查看>>
python之通过“反射”实现不同的url指向不同函数进行处理(反射应用一)
查看>>
10.6 监控io性能;10.7 free;10.8 ps;10.9 查看网络状态;10.10 抓包
查看>>
delegate的用法
查看>>
Ubuntu <2TB sdb preseed示例
查看>>
Android开发之旅:组件生命周期(二)
查看>>
使用LVS+NAT搭建集群实现负载均衡
查看>>
LVM 磁盘分区扩容
查看>>
mysql5.6之key_buffer_size优化设置
查看>>
查看Linux服务器网卡流量小脚本shell和Python各一例
查看>>
Linux TC的ifb原理以及ingress流控
查看>>
AgileEAS.NET之敏捷并行开发方法
查看>>
Java源码分析系列之ArrayList读后感
查看>>
性能测试之手机号码python生成方式
查看>>
统计数据库大小的方法
查看>>
PHP递归遍历文件夹
查看>>
用户系列之五:用户SID查看之终结版
查看>>
ubuntu 11.10下载和编译Android源码
查看>>