ASP.NET Core中Razor页面用ViewModel的@Model属于MVC还是MVVM模式?
ASP.NET Core Razor 视图中的 @Model 对应的架构模式说明
首先直接给结论:默认使用的是**MVC(模型-视图-控制器)**架构模式,不属于MVVM。
核心逻辑解释
@Model的本质是MVC架构中Model层的「视图模型」实体,是服务端渲染视图前由后端逻辑(传统MVC的Controller、Razor Pages的PageModel)主动注入的强类型数据载体,作用是把业务层处理后的、符合视图渲染要求的数据传递给视图,避免直接暴露原始业务域模型给前端。- 和MVVM的核心差异:
- MVVM的核心特性是ViewModel和View之间的双向数据绑定、ViewModel内置状态变更通知、支持视图直接绑定ViewModel的命令方法,两者完全解耦,不需要服务端参与就可以完成状态同步。
- ASP.NET Core的Razor是服务端渲染技术,
@Model是渲染时一次性注入的只读数据,视图本身没有内置的自动同步@Model变更回后端的机制,所有用户操作的提交都需要主动通过表单提交、AJAX请求等方式和后端交互,完全符合MVC的请求流转逻辑:后端处理请求→组装Model→传给视图完成渲染。
- 针对Razor Pages的补充说明:Razor Pages是ASP.NET Core推出的页面优先编程模型,将传统MVC的Controller逻辑和视图模型合并到了
PageModel类中,cshtml视图中调用的@Model就是对应PageModel的实例,这只是MVC架构的轻量化变种,没有引入MVVM的核心特性,所以仍然属于MVC体系。
内容的提问来源于stack exchange,提问作者Noraddeen
相关产品推荐
相关产品推荐

