第4章 轻量页面通道:Razor Pages 本章要回答的三个问题:一、同样是写页面,Razor Pages 和 MVC 到底差在哪、什么时候该选谁?二、一个页面模型是怎么按 HTTP 方法自动路由到对应处理器的?三、页面开发常用的辅助件——分区、分部视图、视图组件——各自解决什么组织问题? 为什么会有这一章 第 3 章的 MVC 是"按角色分文件夹"的组织方式:控制器在一处、视图在另一处,加一个页面要动两个目录。写一个内容站、后台管理系统时,这种拆分反而添乱——一个"联系我们"页面的逻辑本来就不多,却被拆到两个文件里。微软在 2016 年之后给出的答案是 Razor Pages:以"页面"为单位组织,一个页面的标记与逻辑放在一起,管线站点不变,组织方式收敛。
本章要回答的三个问题:一、同样是写页面,Razor Pages 和 MVC 到底差在哪、什么时候该选谁?二、一个页面模型是怎么按 HTTP 方法自动路由到对应处理器的?三、页面开发常用的辅助件——分区、分部视图、视图组件——各自解决什么组织问题?
第 3 章的 MVC 是"按角色分文件夹"的组织方式:控制器在一处、视图在另一处,加一个页面要动两个目录。写一个内容站、后台管理系统时,这种拆分反而添乱——一个"联系我们"页面的逻辑本来就不多,却被拆到两个文件里。微软在 2016 年之后给出的答案是 Razor Pages:以"页面"为单位组织,一个页面的标记与逻辑放在一起,管线站点不变,组织方式收敛。
放进观察哨的视角看,Razor Pages 不是新管线,而是业务管线的一个精简编组:路由自动化了(页面路径即 URL),控制器变成页面模型(按 HTTP 方法分处理器),视图与"控制器"物理上贴在一起。学完第 3 章再来读本章,看到的都是老朋友换了个站位。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 4.1 Razor Pages 结构与约定 | 第一、二个问题 | MVC 与页面通道的文件对照图 + 处理器选择实验 |
| 4.2 Razor 语法与页面辅助功能 | 第三个问题 | 页面组织三件套选型 + 自定义 TagHelper 最小示例 |
两节一虚一实:4.1 解决"结构怎么搭",把页面模型的骨架立起来;4.2 解决"页面写多了怎么组织",讨论复用件与辅助语法。4.1 的处理器实验要求动手,4.2 偏设计判断。
页面通道与 MVC 通道在本章会师:都能写页面、都能接表单。第 5 章离开 UI 线,下沉到数据支线——无论哪条通道,页面背后的数据从哪来、怎么查、怎么存,都要靠 EF Core 与 LINQ 这套数据装备。学完第 5 章回来,你就能把 Razor Pages 页面模型里的占位仓储换成真实现。