第4章 轻量页面通道:Razor Pages


文档摘要

第4章 轻量页面通道:Razor Pages 本章要回答的三个问题:一、同样是写页面,Razor Pages 和 MVC 到底差在哪、什么时候该选谁?二、一个页面模型是怎么按 HTTP 方法自动路由到对应处理器的?三、页面开发常用的辅助件——分区、分部视图、视图组件——各自解决什么组织问题? 为什么会有这一章 第 3 章的 MVC 是"按角色分文件夹"的组织方式:控制器在一处、视图在另一处,加一个页面要动两个目录。写一个内容站、后台管理系统时,这种拆分反而添乱——一个"联系我们"页面的逻辑本来就不多,却被拆到两个文件里。微软在 2016 年之后给出的答案是 Razor Pages:以"页面"为单位组织,一个页面的标记与逻辑放在一起,管线站点不变,组织方式收敛。

第4章 轻量页面通道:Razor Pages

本章要回答的三个问题:一、同样是写页面,Razor Pages 和 MVC 到底差在哪、什么时候该选谁?二、一个页面模型是怎么按 HTTP 方法自动路由到对应处理器的?三、页面开发常用的辅助件——分区、分部视图、视图组件——各自解决什么组织问题?

为什么会有这一章

第 3 章的 MVC 是"按角色分文件夹"的组织方式:控制器在一处、视图在另一处,加一个页面要动两个目录。写一个内容站、后台管理系统时,这种拆分反而添乱——一个"联系我们"页面的逻辑本来就不多,却被拆到两个文件里。微软在 2016 年之后给出的答案是 Razor Pages:以"页面"为单位组织,一个页面的标记与逻辑放在一起,管线站点不变,组织方式收敛。

放进观察哨的视角看,Razor Pages 不是新管线,而是业务管线的一个精简编组:路由自动化了(页面路径即 URL),控制器变成页面模型(按 HTTP 方法分处理器),视图与"控制器"物理上贴在一起。学完第 3 章再来读本章,看到的都是老朋友换了个站位。

读完能解决什么

  • 说出 MVC 与 Razor Pages 在文件组织、路由方式、请求处理上的三处差异与一处本质相同;
  • 按给定 URL 与页面目录结构,推算出哪个页面的哪个处理器被执行;
  • 用页面模型写增删改查页面,处理器命名、绑定、验证一次做对;
  • 在 asp-page、asp-for 等 TagHelper 与分区、分部、视图组件之间做正确的选择。

本章知识点清单

  • 页面双文件结构:标记页与页面模型类的关系,单文件页面的适用边界;
  • 自动路由:页面的目录与文件名如何映射为 URL 模板;
  • 处理器约定:OnGet、OnPost、OnPostXxxAsync 的命名规则与匹配语义;
  • 页面模型的 bind 属性与模型绑定、验证的协作(衔接 3.3 节);
  • PRG 模式在页面通道的标准写法(衔接 3.4 节);
  • 分区 Pages 分目录组织大型站点;分部视图复用纯展示片段;视图组件封装自带取数的模块;
  • 页面级过滤器与授权约定,为第 7 章铺路。

各节怎么分工

回答哪个问题 关键产出
4.1 Razor Pages 结构与约定 第一、二个问题 MVC 与页面通道的文件对照图 + 处理器选择实验
4.2 Razor 语法与页面辅助功能 第三个问题 页面组织三件套选型 + 自定义 TagHelper 最小示例

两节一虚一实:4.1 解决"结构怎么搭",把页面模型的骨架立起来;4.2 解决"页面写多了怎么组织",讨论复用件与辅助语法。4.1 的处理器实验要求动手,4.2 偏设计判断。

页面模型的处理器选择流程

先决条件

  • 第 3 章的模型绑定、验证、PRG 概念直接复用,建议先完成 3.3 与 3.4;
  • 会创建 Razor Pages 项目:模板命令选 webapp;
  • 了解 2.2 节的端点路由概念——页面在启动期同样登记为端点。

往下走到哪

页面通道与 MVC 通道在本章会师:都能写页面、都能接表单。第 5 章离开 UI 线,下沉到数据支线——无论哪条通道,页面背后的数据从哪来、怎么查、怎么存,都要靠 EF Core 与 LINQ 这套数据装备。学完第 5 章回来,你就能把 Razor Pages 页面模型里的占位仓储换成真实现。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U