前言

早年只有 MVC, Razor Page 是后来才出现的.

一开始其实我很看不起 Razor Page, MVC 能做的东西为什么要搞多一个 Razor Page 来做呢?

但我还是尝试用了起来, 这篇就聊一下 2 者的使用体验.

相似之处

2 者都有 .cshtml 来写 html

2 者都有 .cs 来写 c# (当然你要在 .cshtml 写也不是不可以)

区别

我个人感觉最大的区别就是在 route 的匹配上.

MVC 的流程是, URL -> Controller (.cs) -> View (.cshtml)

URL 寻找 Controller 有一个 mapping 的概念 (通常在 startup 配置)

Controller 寻找 View 又有一个 mapping (default 是 2 个 folders, 一个是 Controllers, 一个是 VIews, 这个匹配方式是可以换的)

Razor 的流程是 URL -> .cshtml -> Model (.cs)

URL 寻找 .cshtml (default 是依据 folder 结构, 这个是可以换的)

找到 .cshtml 之后再链接到 Model (.cs)

使用体验

如果是做网站的话,我会比较喜欢用 folder 的结构, 所以 razor page 更加合适.

就有点回到以前写 .html 的那种感觉. 很直观简单.

我目前只有一种情况是需要用到 MVC 的. 就是做 404 页面的时候

因为我有做 amp page, 但是 UseStatusCodePageWithReExceute 只能静态的写一个路径

app.UseStatusCodePagesWithReExecute("/NotFound");

用 Razor Page 的话, 这个 path 会直接找到 .cshtml, 那就完了.

因为 amp/whatever 必须返回 amp/NotFound 内容

而 /whatever 则是去到 /NotFound

这个时候最好的解决方法就是用 MVC, 通过 Controller 就可以选择要返回 amp view 还是 normal view 了.

最后, 其实 MVC 和 Razor Page 并不会冲突, 是可以一起用的哦.

ASP.NET Core – MVC vs Razor Page的更多相关文章

  1. ASP.NET Core MVC里面Razor如何获取URL参数

    原文:ASP.NET Core MVC里面Razor如何获取URL参数 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...

  2. ASP.NET Core MVC的Razor视图中,使用Html.Raw方法输出原生的html

    我们在ASP.NET Core MVC项目中,有一个Razor视图文件Index.cshtml,如下: @{ Layout = null; } <!DOCTYPE html> <ht ...

  3. Asp.net core 学习笔记 Razor Page

    更新 2019-04-27 最近做了更多的 research 发现微软视乎有意发展 razor page. razor page 的定位是 mvvm, 现在还有个叫 blazor 的东西, 类似用 c ...

  4. ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MV ...

  5. ASP.NET Core 入门笔记6,ASP.NET Core MVC 视图传值入门

    摘抄自:https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc-view-renderdata.html 如有侵权请告知 一.前言 1.本教 ...

  6. 从零开始实现ASP.NET Core MVC的插件式开发(八) - Razor视图相关问题及解决方案

    标题:从零开始实现ASP.NET Core MVC的插件式开发(八) - Razor视图相关问题及解决方案 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun ...

  7. 创建ASP.NET Core MVC应用程序(1)-添加Controller和View

    创建ASP.NET Core MVC应用程序(1)-添加Controller和View 参考文档:Getting started with ASP.NET Core MVC and Visual St ...

  8. ASP.NET Core MVC – Tag Helper 组件

    ASP.NET Core Tag Helpers系列目录,这是第五篇,共五篇: ASP.NET Core MVC – Tag Helpers 介绍 ASP.NET Core MVC – Caching ...

  9. 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

    Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Changing vi ...

  10. 你所不知道的ASP.NET Core MVC/WebApi基础系列(一)

    前言 最近发表的EF Core貌似有点多,可别误以为我只专攻EF Core哦,私下有时间也是一直在看ASP.NET Core的内容,所以后续会穿插讲EF Core和ASP.NET Core,别认为你会 ...

随机推荐

  1. 【JavaScript高级02】JavaScript第一大神兽:原型和原型链

    1,函数中的prototype属性 每个函数都会有一个属性prototy,该属性默认指向一个空Object对象,而这个空的Object对象被称之为原型对象. <script > conso ...

  2. python_xecel

    移动并重命名工作簿 1 from pathlib import Path # 导入pathlib模块的path类 2 import time 3 4 # Press the green button ...

  3. 【CentOS】 8版本 Cannot update read-only repo 问题

    GUI界面应用市场无法访问 https://blog.csdn.net/hm0406120201/article/details/104553205/

  4. 【MySQL】30 备份与恢复

    1.备份命令: mysqldump -u用户名 -p 密码 -h 服务主机IP -P 端口号 \ 数据库名称 \ > 指定备份的sql脚本文件位置 ↓ # 文件位置样例: # C:\Users\ ...

  5. 从分布式计算的角度看pytorch和TensorFlow哪个更优?

    背景: pytorch框架是一个从学术圈出来的框架,因此pytorch并不原生支持分布式计算,而且在大模型火爆的今年以外好像在深度学习领域使用分布式计算的场景确实不多,所以pytorch并不原生支持分 ...

  6. 运用Npcap库实现SYN半开放扫描

    Npcap 是一款高性能的网络捕获和数据包分析库,作为 Nmap 项目的一部分,Npcap 可用于捕获.发送和分析网络数据包.本章将介绍如何使用 Npcap 库来实现半开放扫描功能.TCP SYN 半 ...

  7. RabbitMq消息可靠性之回退模式 通俗易懂 超详细 【内含案例】

    RabbitMq保证消息可靠性之回退模式 介绍 生产者生产的消息没有正确的到达队列就会触发回退模式,进行二次发送 前提 完成SpringBoot 整合 RabbitMq 中的Topic通配符模式 一. ...

  8. quartz监控日志(二)添加监听器

    上一章介绍监控job有三种方案,其实还有一个简单方案是实现quartz的TriggerListener. 上次我也试了这个方案,但是由于操作错误,导致没有监控成功,所以才选择分析源码来实现代理进行监控 ...

  9. k8s pvc扩容

    #查看是否支持扩容 $ kubectl get sc ** -o yaml ··· allowVolumeExpansion: true #拥有该字段表示允许动态扩容 ··· #找到需要扩容的pvc ...

  10. MYSQL——帆软连接报错

    2024/07/11 1.报错 2.报错原因 3.解决办法 4.参考 1.报错 错误代码:11300001 数据集配置错误<br>Query:<br>Unknown initi ...