ASP.NET Web应用中的 Razor Pages/MVC/Web API/Blazor

        如果希望使用ASP.NET Core创建新的 Web 应用程序,应该选择哪种方法?Razor Pages还是 MVC(模型-视图-控制器),又或者使用Web API + Vue/React/......

        每种方法都有各自的优点和缺点。

什么是 MVC?

        大多数服务器端语言都采用广泛使用的模型-视图-控制设计。它由三个主要组件组成:控制器、模型和视图。控制器负责输入并与模型和视图交互。视图负责用户界面,模型代表业务逻辑和数据。虽然 MVC 模型适用于 API 开发,但 Razor Pages 专注于页面而不是 API。如果您打算使用 Angular 或 React 等前端框架,那么 MVC 将是一个合适的选择。

什么是 Razor Pages?

        Razor Pages 是允许轻松加载数据的网页,类似于 HTML 页面。它们与 ASP.NET MVC 的视图组件非常相似,具有相同的语法和功能。 Razor Pages 和 MVC 之间的主要区别在于,使用 Razor Pages,模型和控制器代码包含在页面本身中。这样就无需单独添加代码。Razor Pages 类似于MVVM 框架(模型-视图-视图-模型),提供双向数据绑定和具有隔离关注点的简化开发体验。 ASP.NET MVC在 Web 应用程序开发中越来越受欢迎,具有众多优势。事实上,ASP.NET Web Forms 是作为 MVC 中的 MVVM 解决方案设计的。 然而,新的 ASP.NET Core Razor Pages 代表了 ASP.NET Web Forms 的下一个发展阶段。

        MVVM 框架最出名的是数据模型的双向数据绑定。

        MVC 非常适合具有许多动态服务器视图、单页应用、REST API 和 AJAX 调用的应用。Razor Pages 非常适合只读或进行基本数据输入的简单页面。

什么是Web API?

        MVC 用于 Web 应用程序开发。MVC返回数据和数据视图,而 Web API 仅返回 HTTP 服务数据,即仅以数据形式返回。

        所以如果您了解前端“单页应用程序”框架(如 Vue、Angular、 React.js)并且想要使用该框架构建应用程序,那么您需要使用 ASP.NET Core Web API 构建 API。

Razor Pages 与 ASP.NET MVC

        Razor Pages 和 MVC 各有优势,适用于不同的目的。虽然 Razor Pages 在创建基本页面方面可能更简单、更高效,但 MVC 提供了更灵活、更可扩展的架构,更适合具有更复杂要求的大型项目。

        Razor Pages 还旨在根据文件的用途对其进行分组,并为每个提供增强功能的类提供紧密集成的代码。它们特别适合创建仅允许只读输入数据的基本页面。相比之下,MVC 有三个主要组件模型、视图和控制器。模型包括数据和相关逻辑;它表示在控制器组件之间传输的数据。视图使用从模型数据收集的数据来控制数据的呈现。

        Razor Pages 和 MVC 之间的选择取决于项目的特定需求以及开发团队的偏好和专业知识。

什么是 Blazor?

        Blazor 是基于 HTML、CSS 和 C# 的新式前端 Web 框架,可帮助更快地构建 Web 应用。 借助 Blazor,可以使用可从客户端和服务器运行的可重用组件构建 Web 应用,以便提供出色的 Web 体验。 Blazor 是 .NET 的一部分,它是用于构建任何内容的开发人员平台。 .NET 是免费的开放源代码,并且跨平台运行。

什么是 Blazor? - Training | Microsoft LearnBlazor 是基于 HTML 和 C# 的新式前端 Web 框架,可帮助更快地构建 Web 应用。icon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/training/modules/blazor-introduction/2-what-is-blazor

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/42188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松设置:服务器域名配置全攻略

目录 前置条件 在阅读本篇内容之前,请先确保以下物料已准备好: 一台公网服务器,服务正常运行申请完成的域名,在对应域名服务商后台正常DNS解析域名备案完成可选条件:有https访问请求时,需要申请SSL证书 …

微信小程序的“小鱼在乎”日程计划系统-计算机毕业设计源码51307

摘要 本文介绍了一种基于微信小程序和Spring Boot后端服务的“小鱼在乎”日程计划系统。该系统结合了前端微信小程序的便捷交互与后端Spring Boot框架的稳健性能,为用户提供了一款功能全面、体验出色的日程管理工具。 “小鱼在乎”日程计划系统涵盖了多种功能&#…

DNS正向解析与反向解析实验

正向解析 安装bind软件 [rootlocalhost ~]# dnf install bind bind-utils -y修改主配置文件/etc/named.conf [rootlocalhost ~]# vim /etc/named.conf重启DNS服务(named) [rootlocalhost ~]# systemctl restart named编辑数据配置文件。在/var/named…

技术周总结 2024.07.01~07.07(Spark Scala)

文章目录 一、07.01 周一1.1)问题01:scala怎么实现 一个变量作为函数的入参以及返回值1.2)问题02:park中DataFrame使用 createView的用法1.3)问题03:scala中三元运算符1.4) 问题04:伴生对象和伴…

vue 等待数据被定义后再执行v-for(ai生成)

在Vue中&#xff0c;如果你想确保在使用v-for循环之前数据已经被定义&#xff0c;你可以使用v-if指令来控制v-for的执行。有时使用axios异步请求数据时需延时&#xff08;比如500ms&#xff09;&#xff0c;才能获得被赋值的数据&#xff0c;v-if判断后再执行v-for。 <temp…

ubuntu20.04安装ros1

1、sudo apt-get install git 2、新建一个文件夹&#xff0c;进入该文件夹打开终端 git init git clone https://github.com/RocShi/rostaller.git 选择 1 3、进入下载后的文件夹 打开终端 chmod x run.sh ./run.sh 4、配置环境 echo "source /opt/ros/noetic/setup.…

000.动态规划题解目录

000.动态规划题解目录 奋力码字中

css如何设置文本第二行的文字多余部分变为省略号

在CSS中&#xff0c;直接设置一个元素中的文本最多有几行并不是原生的功能。但你可以使用一些技巧来实现类似的效果&#xff0c;特别是在固定高度的元素中。 以下是一些常用的方法&#xff1a; 使用line-height和height: 如果你知道文本的line-height&#xff0c;你可以通过…

Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制

文件的读取、显示、存取 cv2.imread(imagepath,IMREAD.xxx) 读取图像cv2.imshow(窗口名称,mat图片) 显示图像cv2.imwrite(保存的位置,img) 保存图像 # 1. 读取图像 原始图片路径&#xff0c;图片读取模式 cv2.imread(imagepath,IMREAD.xxx)cv2.IMREAD_COLOR 彩色模式读取 cv2…

Gemini for China 大更新,现已上架 Android APP!

官网&#xff1a;https://gemini.fostmar.online/ Android APP&#xff1a;https://gemini.fostmar.online/gemini_1.0.apk 一、Android APP 如果是 Android 设备&#xff0c;则会直接识别到并给下载链接。PC 直接对话即可。 二、聊天记录 现在 Gemini for China&#xff…

【论文笔记】UniST:通用预训练城市时空预测模型

目录 写在前面1. 通用时空模型的挑战与能力特性2. 构建通用时空模型UniST2.1 大规模时空预训练2.2 时空知识规则引导提示学习 3. UniST的实验与分析3.1 模型预测效果3.2其他实验分析 写在前面 文章标题&#xff1a;UniST: A Prompt-Empowered Universal Model for Urban Spati…

每日一题~ leetcode 402 (贪心+单调栈)

click me! 这个贪心的推导在leetcode上已经很明确了。 click me! 删除k个数&#xff0c;可以先考虑删除一个数。这也是一种常见的思路。&#xff08;如果进行同样的操作多次&#xff0c;可以先只 考虑一次操作如何实现&#xff0c;或者他的影响。完成这一次操作后&#xff0c;…

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的方式增长。第1周少了1个朋友......

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的 方式增长。第1周少了1个朋友&#xff0c;剩下的朋友数量翻倍&#xff1b;第2周少了2个朋友&#xff0c;剩下的朋友数量 翻倍。一般而言&#xff0c;第N周少了N个朋友&#xff0c;剩下的朋友数量翻倍…

程序员下班为什么不关电脑?难道在偷偷加班?!

不管是周围的程序员朋友还是网上的很多程序员朋友&#xff0c;在下班后都是习惯不关电脑的&#xff0c;关上显示器&#xff0c;拿上手机&#xff0c;快乐下班&#xff01; 那么&#xff0c;为什么程序员下班都不关电脑&#xff1f;难道他们在偷偷加班&#xff1f; 其实&#x…

锂电池寿命预测 | Matlab基于改进的遗传算法优化BP神经网络的锂离子电池健康状态SOH估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 主要流程如下: 1、首先提取“放电截止电压时间”作为锂电池间接健康因子&#xff1b; 2、然后引入改进的遗传算法对BP神经网络的模型参数进行优化。 3、最后 NASA 卓越预测中心的锂电池数据集 B0005、B0006、B0007对…

昇思25天学习打卡营第11天|MindSpore 助力下的 GPT2:数据集加载处理及模型全攻略

目录 环境配置 数据集下载和获取 数据集拆分 处理数据集 模型构建 ​​​​​​​模型训练 ​​​​​​​模型推理 环境配置 “%%capture captured_output”这一行指令通常旨在捕获后续整个代码块所产生的输出结果。首先&#xff0c;将已预装的 mindspore 库予以卸载。随后&a…

讲个SystemVerilog随机约束小坑

正文 记录个在写SystemVerilog随机约束时遇到的一个小坑&#xff0c;如果没有认真去查看随机结果是否符合预期&#xff0c;还真不容易发现。 为了方便讲述&#xff0c;写了如下示例代码。类cl_a里有个随机变量aa&#xff0c;初始值为222。在module top里对类cl_a例化并进行约…

最近你悟出来什么道理?

点击上方△腾阳 关注 转载请联系授权 大家伙&#xff0c;我是腾阳。 活了近30年的我&#xff0c;终于领悟到&#xff0c;人生的旅途是一场深刻而复杂的自我发现与灵魂成长的壮丽征途。 这不仅仅是对外在世界的探索&#xff0c;更是内心深处的一场革命&#xff0c;是灵魂从懵…

Educational Codeforces Round 167(Div.2) A~D

A.Catch the Coin&#xff08;思维&#xff09; 题意&#xff1a; Monocarp 参观了一家有街机柜的复古街机俱乐部。在那里&#xff0c;他对"抓硬币"游戏机产生了好奇。 游戏非常简单。屏幕上的坐标网格是这样的 X X X轴从左到右&#xff1b; Y Y Y轴从下往上&…

小白必看!推荐三本高质量python书籍,让你直接原地起飞

Python是一种多功能语言。它经常用作Web应用程序的脚本语言&#xff0c;嵌入到软件产品中&#xff0c;以及人工智能和系统任务管理。它既简单又强大&#xff0c;非常适合初学者和专业程序员。 python的自学书籍非常多&#xff0c;涉及基础入门、web开发、机器学习、数据分析、…