ASP.NET Core Razor Pages 初探
2020-04-27 23:21
936 查看
最近新建 Asp.net Core MVC 项目的时候不小心选错了个模板,发现了一种新的项目模板。它使用cshtml视图模板,但是没有Controller文件夹。后来才发现这是ASP.NET Core框架新推出的Razor Pages技术。
## 什么是Razor Pages
“Razor Pages 使编码更加简单更加富有生产力”这是微软说的==!。Razor Pages 简化了传统的mvc模式,仅仅使用视图跟模型来完成网页的渲染跟业务逻辑的处理。模型里包含了数据跟方法,通过绑定技术跟视图建立联系,这就有点像服务端的绑定技术。下面使用一个标准的CRUD示例来演示Razor Pages的开发,并且简单的探索一下它是如何工作的。
## 新建Razor Pages项目
在visual studio中新建Razor Pages项目。
![](https://s1.ax1x.com/2020/04/26/J2bbD0.md.png)
项目结构
![](https://s1.ax1x.com/2020/04/26/J2LJw6.png)
新建项目的目录结构比MVC项目简单。它没有Controllers目录,Pages有点像MVC项目的Views目录,里面存放了cshtml模板。随便点开一个cshtml文件,发现它都包含了一个cs文件。这是跟MVC项目最大的不同,这个结构让人回忆起那古老的WebForm技术,o(╥﹏╥)o 。
![](https://s1.ax1x.com/2020/04/26/J2XnxJ.md.png)
## 新建Razor Page
我们模拟开发一个学生管理系统。一共包含4个页面:列表页面、新增页面、修改页面、删除页面。首先我们新建一个列表页面。
在Pages目录下面新建Student目录。在Student目录下新建4个Razor page名叫:List、Add、Update、Delete。
![](https://s1.ax1x.com/2020/04/26/J2jsmR.md.png)
建好后目录结构是这样:
![](https://s1.ax1x.com/2020/04/26/J2xYGT.png)
## 模拟数据访问仓储
由于这是个演示项目,所以我们使用静态变量来简单模拟下数据持久。
在项目下新建一个Data目录,在目录下新建Student实体类:
```
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Class { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}
```
在Data目录下新建IStudentRepository跟StudentRepository类:
```
public interface IStudentRepository
{
List
相关文章推荐
- Razor Pages with ASP.NET Core 2
- Introduction to Razor Pages in ASP.NET Core
- C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
- 学习ASP.NET Core Razor 编程系列十五——文件上传功能(三)
- Asp.net core 2.0.1 Razor 的使用学习笔记(三)
- ASP.NET Core Razor 页面使用教程
- Asp.net Core 系列之--2.ORM初探:Dapper实现MySql数据库各类操作
- Asp.net core 初探
- 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面
- asp.net core 系列 8 Razor框架路由(下)
- Asp.net core 学习笔记 ( Smtp and Razor template 电子邮件和 Razor 模板 )
- Scaffolding Template on Asp.Net Core Razor Page
- 学习ASP.NET Core Razor 编程系列十七——分组
- Asp.Net Core 初探 (三)
- Asp.net Core 初探(发布和部署Linux)
- Asp.Net Core-几行代码解决Razor中的嵌套if语句
- ASP.NET Core Razor 视图预编译、动态编译
- Asp.net Core 初探(发布和部署Linux)
- Scaffolding Template on Asp.Net Core Razor Page
- .net Core Razor Pages中定义SEO友好的URL