ASP.NET Core Razor Pages架构辨析:属于MVC还是MVVM?
ASP.NET Core Razor Pages 架构归属:MVC 还是 MVVM?
核心结论
Razor Pages本质上是MVC模式的简化变体,并非MVVM模式。
为什么不属于MVVM?
MVVM的核心逻辑是视图与ViewModel双向绑定,交互由前端视图触发,ViewModel专注于业务逻辑与视图状态维护,全程是前端驱动的流程。但Razor Pages的运行逻辑完全不符合这一原则:
- 请求的发起、后端逻辑处理都在**页面模型(PageModel)**中完成,视图仅负责渲染页面模型传递的数据,不会直接触发业务请求或逻辑;
- 页面模型的定位更接近MVC里控制器+模型的结合体,而非MVVM的ViewModel——MVVM的ViewModel是为前端视图绑定设计的,并不承担路由处理、后端请求响应这类职责。
为什么是MVC的简化变体?
Razor Pages完全遵循MVC的核心分工逻辑,只是做了组件合并简化:
- 视图(View):对应
.cshtml页面,负责数据展示,和MVC的V角色一致; - 页面模型(PageModel):既承担了MVC中控制器(C)的路由匹配、请求处理、响应返回职责,又包含了模型(M)的数据封装、验证逻辑,是C和M的合并体;
- 整体流程是后端驱动:用户请求到达后,页面模型处理业务逻辑,再将数据传递给视图渲染输出,和MVC的「请求→控制器→模型→视图」流程完全匹配。

内容的提问来源于stack exchange,提问作者VanasisB
相关产品推荐
相关产品推荐

