惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
I
InfoQ
B
Blog RSS Feed
D
DataBreaches.Net
S
SegmentFault 最新的问题
P
Proofpoint News Feed
A
About on SuperTechFans
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
小众软件
小众软件
博客园 - Franky
有赞技术团队
有赞技术团队
D
Docker
T
Tailwind CSS Blog
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Blog — PlanetScale
Blog — PlanetScale
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
V
Visual Studio Blog
宝玉的分享
宝玉的分享
爱范儿
爱范儿

博客园 - 老码识途呀

基于.NET的Windows窗体编程之WinForms自定义控件(1) 基于.NET的Windows窗体编程之WinForms滑块与上下控件 基于.NET的Windows窗体编程之WinForms文件监控 基于.NET的Windows窗体编程之WinForms音频控件 基于.NET的Windows窗体编程之WinForms图像控件 基于.NET的Windows窗体编程之WinForms提示控件 基于.NET的Windows窗体编程之WinForms时间控件 基于.NET的Windows窗体编程之WinForms图表控件 基于.NET的Windows窗体编程之WinForms输入与显示 基于.NET的Windows窗体编程之WinForms菜单工具栏 基于.NET的Windows窗体编程之WinForms打印 基于.NET的Windows窗体编程之WinForms对话框 基于.NET的Windows窗体编程之WinForms列表控件 基于.NET的Windows窗体编程之WinForms数据表格 基于.NET的Windows窗体编程之WinForms事件简介 基于.NET的Windows窗体编程之WinForms布局简介 基于.NET的Windows窗体编程之WinForms控件简介 基于.NET的Windows窗体编程之WinForms入门简介 推荐一款基于.NET和百度飞桨的OCR识别组件 新书速递,手把手教你WPF入门与开发 推荐一种并发线程中资源同步常用方法 推荐一种手动设置异步线程等待机制的解决方案 推荐一种异步线程执行过程中更新进度的方法 推荐一款基于.NET的进程间数据交互经典解决方案 推荐一款线程or进程间数据同步解决方案 推荐一款代码规范检查(CodeReview)神器 推荐一款高性能状态机管理解决方案 推荐一款进程间高速交换数据的解决方案 推荐一款基于.NET的进程间通信框架 推荐一款基于EF-Core的分库分表利器
ASP.NET Core WebApi+React UI开发入门详解
老码识途呀 · 2025-03-25 · via 博客园 - 老码识途呀

在前段时间,有粉丝反馈能否写一篇基于ASP.NET Core Web Api+React UI进行Web开发的文章,经过查阅相关资料,发现Visual Studio 2022已经集成相关模板,可以在Visual Studio中直接创建项目项目,今天以一个小例子,简述ASP.NET Core Web Api+React UI开发系统的基本步骤,仅供学习分享使用,如有不足之处,还请指正。

开发环境

创建和开发基于ASP.NET Core Web Api+React UI的前后端分离项目,需要的环境如下:

开发环境:Visual Studio 2022 最低支持版本为17.11或更高版本。在Visual Studio 中,点击“帮助”菜单,然后点击“关于Microsoft Visual Studio”,可以查看已安装的版本。

小编电脑上的Visual Studio 2022版本为v17.13.2,如下所示:

安装Visual Studio 2022时,需要安装“ASP.NET 和Web开发”,以及“Web部署”模块,如果没有安装,可以通过Visual Studio中“工具”菜单,然后点击“获取工具和功能”进行查看,如下所示:

Web部署组件

NPM环境,NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。由于基于React UI的前端项目,是通过NPM创建模板项目,所以需要NPM的支持。在命令行中,可以通过npm -v 查看当前版本,如果使用npm -v 提示不存在的命令,则表示没有安装npm,可以通过安装node.js进行安装。小编的npm当前版本为10.7.0,node.js的版本为v22.2.0。如下所示:

项目创建步骤

选择项目模板,在创建项目向导中,搜索React关键字,然后选择“React and ASP.NET Core”模板,搜索出来的两个分别是基于TypeScript和JavaScript,均可以创建,如下所示:

配置项目,输入解决方案名称,如“OneReactApp”,以及项目存储的位置。如下所示:

选择框架,目前只有“.NET 8.0”支持此项目的创建,其他选择默认即可,如下所示:

创建项目,在上述步骤中,配置完信息,点击“创建”即可创建项目。Visual Studio会默认创建两个项目,分为客户端和服务端。客户端基于React UI进行开发,服务端基于ASP.NET Core Web Api进行开发,如下所示:

在项目创建过程中,并不一定会顺利,如果报以下错误“Unsupported engine for tmp@0.2.3:wanted:{node:>=14.4 }”等信息,则表示node版本太低,需要升级。

如果提示“Syntax Error:Unexpected token ?”等语法错误,是因为可选链操作符需要在 Node.js 的较新版本中才支持。如果你使用的是 Node.js 的一个旧版本,它将无法识别 ? 符号。建议升级Node.js到最新版本。

设置项目属性

选择服务端项目【OneReactApp.Server】,右键“属性”打开属性页面,在“调试”选项卡,点击“打开调试启动配置文件 UI”打开“启动配置文件”窗口,如下所示:

在“启动配置文件”窗口,选择Https选项卡,在启动浏览器,取消勾选“指示在调试项目时应自动启动web浏览器”,如下所示:

配置启动项,选择解决方案,在右键菜单中,选择“配置启动项”打开“解决方案属性页”,选择“多个启动项目(M)”,然后将客户端和服务端项目都设置为启动,然后点击“应用”按钮。如下所示:

启动项目

在Visual Studio 开发工具中,点击“启动”按钮或快捷键“F5”启动调试。如下所示:

第一次启动项目,需要先还原客户端需要的库,此操作是通过npm命令在线执行,可能需要几分钟,如下所示:

程序运行后,会出现两个命令提示符,Vite Cli表示React UI客户端项目是通过VITE启动的,如下所示:

另外一个窗口是“正在运行的 ASP.NET Core API 项目”,表示服务端运行窗口。如下所示:

在上述启动的两个窗口中,可以看到默认的客户端端口为53017,服务端端口为7061。

正常启动后,可在默认浏览器里看到一个“Weather forecast”页面,这是Visual Studio 2022项目创建模板自带的页面,即表示运行成功,如下所示:

发布项目

ASP.NET Core WebAPI+React UI前后端分离的项目,发布步骤如下:

1. 在服务端添加对客户端的引用,首先在解决方案管理器中,选择服务端项目,在右键菜单中,选择“添加”,在子菜单中选择“项目引用”或者在“依赖项”点击右键,在弹出菜单中选择“添加项目引用”,打开“引用管理器”,选择客户端项目“onereactapp.client”,然后点击“确定”即可,如下图所示:

添加成功后,即可在“依赖项”项目中看到对客户端的引用,如下所示:

2. 编辑项目文件,在服务端项目上点击右键,在弹出的右键菜单中选择“编辑项目文件”,打开项目文件,请确保项目引用包含一个 <ReferenceOutputAssembly> 元素,其值设置为 false。如下所示:

3. 确保Program.cs文件中存在如下代码

然后选择服务端项目“OneReactApp.Server”右键菜单点击“发布”,然后选择发布方案,如“文件夹”,如下所示:

然后点击“下一步”,选择目标发布的位置,默认为“bin\Release\net8.0\publish\”,如下所示:

然后点击“完成”,创建项目发布文件,然后点击“关闭”,如下所示:

然后点击“发布”按钮,如下所示:

发布成功后,如下所示:

在“输出”窗口,也可以看到发布过程中输出的信息,如下所示:

发布成功,在文件夹里面,可以看到发布后的结果文件,如下所示:

双击“OneReactApp.Server.exe”,提示缺少“wwwroot”目录,静态文件可能会不可用,如下所示:

后来经过分析,发现客户端采用npm run build命令进行构建,在构建后,会在dist目录下生成静态文件,所以在服务端发布目录下,创建wwwroot目录,并将dist目录下的文件拷贝过来即可。

onereactapp.client\dist目录下的静态文件,如下所示:

复制到服务端发布目录下的文件结构,如下所示:

再次双击“OneReactApp.Server.exe”后,显示运行正常,如下所示:

然后在浏览器中输入配置的http://localhost:5000即可访问,与在Visual Studio 2022中调试状态下输出内容一样,则表示发布成功,如下所示:

以上就是《ASP.NET Core WebApi+React UI开发入门详解》的全部内容,希望可以抛砖引玉,一起学习,共同进步。