Asp.Net 前后端分离项目——项目搭建

devtools/2025/2/24 2:56:19/

项目目录

MyDemoProject/
├── BackendDemo/               # 后端项目目录
│   ├── Controllers/           # 控制器目录,存放 API 控制器
│   │   └── WeatherForecastController.cs
│   ├── Models/                # 数据模型目录(可选)
│   │   └── WeatherForecast.cs
│   ├── Properties/            # 配置文件目录
│   │   └── launchSettings.json
│   ├── appsettings.json       # 应用配置文件
│   ├── Program.cs             # ASP.NET Core 的入口点
│   ├── BackendDemo.csproj     # 项目文件
│   └── ...
├── frontend-demo/             # 前端项目目录
│   ├── public/                # 公共资源目录
│   │   ├── index.html         # HTML 模板
│   │   └── ...
│   ├── src/                   # 源代码目录
│   │   ├── App.js             # React 主组件
│   │   ├── components/        # React 组件目录
│   │   ├── services/          # 服务目录,用于封装 API 调用
│   │   │   └── api.js         # Axios 封装的服务
│   │   ├── index.js           # React 应用入口文件
│   │   └── ...
│   ├── package.json           # Node.js 项目依赖和脚本配置
│   ├── package-lock.json      # 锁定依赖版本
│   └── ...
└── README.md                  # 项目说明文档
  • 前端 :React.js
  • 后端 :ASP.NET Core Web API

后端 Asp.Net Core Web Api

  1. 打开 Visual Studio :
  2. 启动 Visual Studio。
  3. 创建新项目 :
    • 点击 Create a new project。
    • 在搜索框中输入 ASP.NET Core Web API,然后选择它并点击 Next。
    • 配置项目 :
    • 输入项目名称(例如 BackendDemo)。
    • 选择项目保存的位置。
    • 点击 Next。
    • 选择框架和配置 :选择 .NET 6.0 或更高版本(确保你安装了相应的 SDK)。确保勾选 Enable OpenAPI support,这样可以生成 Swagger 文档,方便调试 API。
    • 点击 Create。
    • 修改默认的 WeatherForecast 控制器 (可选):打开 Controllers/WeatherForecastController.cs。你可以修改或添加新的 API 端点。例如:
[ApiController]
[Route("api/[controller]")]
public class WeatherForecastController : ControllerBase
{private static readonly string[] Summaries = new[]{"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};[HttpGet]public IEnumerable<WeatherForecast> Get(){var rng = new Random();return Enumerable.Range(1, 5).Select(index => new WeatherForecast{Date = DateTime.Now.AddDays(index),TemperatureC = rng.Next(-20, 55),Summary = Summaries[rng.Next(Summaries.Length)]}).ToArray();}
}
  1. 运行后端项目 :
    按下 F5 或点击 Run 按钮,启动后端项目。
    默认情况下,Swagger UI 将在浏览器中打开,地址通常是 https://localhost:5001/swagger。如果不是可以根据控制台中显示的监听端口来访问默认页面
info: Microsoft.Hosting.Lifetime[14]Now listening on: https://localhost:7240
info: Microsoft.Hosting.Lifetime[14]Now listening on: http://localhost:5162
  1. 解决跨域问题 :
    • 默认情况下,React 应用会运行在 http://localhost:3000,而后端运行在 https://localhost:5001,这会导致跨域问题。
    • 为了解决这个问题,可以在 ASP.NET Core 后端项目中启用 CORS。
    • 打开 Startup.cs 文件(或在 .NET 6+ 中直接修改 Program.cs),添加 CORS 配置:
var builder = WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddCors(options =>
{options.AddPolicy("AllowAllOrigins",builder =>{builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();});
});var app = builder.Build();// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI();
}app.UseHttpsRedirection();
app.UseCors("AllowAllOrigins");
app.UseAuthorization();
app.MapControllers();app.Run();

创建前端项目(React.js)

  1. 安装 Node.js 和 npm :
    • 如果还没有安装 Node.js,请前往 Node.js 官网 下载并安装。
  2. 创建 React 项目 :
    • 打开终端或命令提示符,运行以下命令来创建一个新的 React 项目:
npx create-react-app frontend-demo 
- 进入项目目录:
cd frontend-demo
  1. 安装 Axios (用于发送 HTTP 请求):
    • 在项目目录中运行以下命令来安装 Axios:
npm install axios
  1. 修改 React 代码 :
    • 打开 src/App.js 文件,并修改为以下内容:
import logo from './logo.svg';
import './App.css';
import React, { useEffect, useState } from 'react';
import axios from 'axios';function App() {const [forecasts, setForecasts] = useState([]);useEffect(() => {// 调用后端 API 获取数据,注意API的端口以及路由是否和后端的一致axios.get('https://localhost:7240/api/weatherforecast').then(response => {setForecasts(response.data);}).catch(error => {console.error('There was an error fetching the data!', error);});}, []);return (<div className="App"><h1>Weather Forecast</h1><ul>{forecasts.map((forecast, index) => (<li key={index}>{forecast.date} - {forecast.summary} ({forecast.temperatureC}°C)</li>))}</ul></div>);
}
export default App;
  1. 运行前端项目 :
    • 在终端中运行以下命令来启动 React 项目:
npm start
- React 应用将会在 http://localhost:3000 上运行,并且会从后端 API 获取天气预报数据。

http://www.ppmy.cn/devtools/161274.html

相关文章

跨中心模型自适应牙齿分割|文献速递-医学影像人工智能进展

Title 题目 Cross-center Model Adaptive Tooth segmentation 跨中心模型自适应牙齿分割 01 文献速递介绍 三维&#xff08;3D&#xff09;口腔内扫描牙齿模型的自动、准确分割是计算机辅助正畸治疗不可或缺的先决条件。具体而言&#xff0c;口腔内扫描&#xff08;IOS&am…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_full_name 函数

ngx_conf_full_name 声明在 src/core/ngx_conf_file.h ngx_int_t ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name,ngx_uint_t conf_prefix); 定义在 src\core\ngx_conf_file.c ngx_int_t ngx_conf_full_name(ngx_cycle_t *cycle, ngx_str_t *name, ngx_uint_t conf_…

华为云ECS命名规则解析与规格选型实战指南

一、华为云ECS命名规则深度解析 华为云服务器ECS实例名称采用标准化编码规则&#xff0c;通过命名即可快速识别实例的关键参数。典型命名格式如下&#xff1a; [实例族][代次].[规格大小].[扩展标识] 以c6.2xlarge.4为例进行分解&#xff1a; 1. 实例族标识&#xff08;首位…

Spring MVC 框架学习笔记:从入门到精通的实战指南

目录 1. Spring MVC 概述 2. Spring MVC 项目搭建 3. Spring MVC 执行流程 4. Spring MVC RequestMapping 注解 5. Spring MVC 获取请求参数 6. Spring MVC 常见注解 7. Spring MVC 响应处理 8. Spring MVC SSM 整合 9. Spring MVC 作用域传参 10. Spring MVC 上传 1…

Maven 构建中的安全性与合规性检查

在现代软件开发中&#xff0c;确保应用程序的安全性和合规性至关重要。随着开源软件和第三方依赖的广泛使用&#xff0c;构建过程中对依赖的安全性和合规性检查变得尤为重要。通过 Maven 构建工具&#xff0c;我们可以集成多种安全性和合规性检查机制&#xff0c;帮助开发者检测…

基于Python+Vue开发的商城管理系统源代码

项目简介 该项目是基于PythonVue开发的商城管理系统&#xff08;前后端分离&#xff09;&#xff0c;这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能&#xff0c;同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上商城管…

探索与Cursor协作创建一个完整的前后端分离的项目的最佳实践

探索与Cursor协作创建一个完整的前后端分离的项目的最佳实践 Cursor简介 Cursor在目前代表了AI编程技术的顶峰。在一定程度上可以说是当今AI时代的最强生产力代表。为此,不惜重金开了年费会员来紧跟时代步伐。当然cline、roo code、trae等开源或者免费产品也在紧追不舍。 C…

DeepSeek 提示词:定义、作用、分类与设计原则

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…