剃刀页面是不是位于 mvc 层之上?

Posted

技术标签:

【中文标题】剃刀页面是不是位于 mvc 层之上?【英文标题】:Does razor pages sit over the mvc layer?剃刀页面是否位于 mvc 层之上? 【发布时间】:2022-01-09 18:44:30 【问题描述】:

在最新的开源 .net 框架(.net 5 或 .net 6)中,用于 Web 应用程序开发的模板有 2 个:

    Mvc - 3 个文件 - 模型/视图/控制器

    Razor 页面 - 2 个文件 - 查看/隐藏代码

对于新开发,建议使用剃须刀页面。

以上两者是不同的概念。那为什么架构图显示 mvc 作为剃须刀页面的基础层?

剃刀页面不应该放在mvc旁边吗?

来源:https://youtu.be/d9Bjg31VuHw 44:12

【问题讨论】:

【参考方案1】:

Razor Pages 依赖于 MVC 框架的某些部分,例如属性路由、模型绑定和操作结果,这就是为什么它被认为是 MVC 之上的一个层。您无法避免在 Razor Pages 应用程序中为 Microsoft.AspNetCore.Mvc 添加 using 指令。

【讨论】:

我很困惑,因为剃须刀页面没有模型视图控制器,还是有?我只知道 mvc 和 razor 页面是 2 个独立的项目模板。 在 Razor 页面中,PageModel 是 Controller,cshtml 文件是 View。 Razor Pages 和 MVC 中的模型基本上就是其他一切。

以上是关于剃刀页面是不是位于 mvc 层之上?的主要内容,如果未能解决你的问题,请参考以下文章

MVC和同一项目.net核心中的剃刀页面区域

剃刀页面视图模型类中的 Url.Action 备用

.NET 5:可以在 MVC 应用程序的 .cshtml 文件中创建指向注册剃刀页面的链接吗?请阅读说明

如何将剃刀页面包含在另一个剃刀页面中?

剃刀页面和服务器方法

剃刀视图 MVC 中的多个模型