mobile365体育手机版入口

ASP.NET Core MVC创建项目

ASP.NET Core MVC创建项目

ASP.NET Core MVC创建项目

创建项目

打开Visual Studio 2022

点击创建项目

选择ASP.NET Core Web Application

项目文件说明

mvcone 项目名称,双击可以打开

- Properties 文件

- launchSettings.json 项目配置信息,只用于项目启动信息(既:只处理项目启动信息)

- wwwroot 前端静态文件

- appsettings.json 项目配置文件

- Program.cs 启动依赖注入文件

mvcone 项目文件修改

net6.0

disable

en

enable

launchSettings.json 文件说明

// 当前文件是: 项目配置信息,只用于项目启动信息(既:只处理项目启动信息)

{

"$schema": "https://json.schemastore.org/launchsettings.json",

"iisSettings": {

"windowsAuthentication": false,

"anonymousAuthentication": true,

"iisExpress": {

"applicationUrl": "http://localhost:39564",

"sslPort": 0

}

},

"profiles": {

"chid.api": { //KESTREL 服务器设置

"commandName": "Project",

"dotnetRunMessages": true,

"launchBrowser": true,

"launchUrl": "swagger",

"applicationUrl": "http://localhost:5231",

"environmentVariables": {

"ASPNETCORE_ENVIRONMENT": "Development"

}

},

"IIS Express": { // iis 服务器设置

"commandName": "IISExpress",

"launchBrowser": true,

"launchUrl": "swagger",

"environmentVariables": {

"ASPNETCORE_ENVIRONMENT": "Development"

}

}

}

}

appsettings.json 文件

{

"Logging": {

"LogLevel": {

"Default": "Information",

"Microsoft.AspNetCore": "Warning"

}

},

"AllowedHosts": "*",

"JWTTokenOptions": {

"Audience": "http://localhost:5167",

"Issuer": "http://localhost:5167",

"SecurityKey": "MIGfMAOGCSqGSIb3DQEBAQUAA4GNAIMIGfMAOGCSqGSIb3DQEMIGfMAOGCSqGSIb3DQEBAQUAA4GNAIBAQUAA4GNAIMIGfMAOGCSqGSIb3DQEBAQUAA4GNAIMIGfMAOGCSqGSIb3DQEBAQUAA4GNAIMIGfMAOGCSqGSIb3DQEBAQUAA4GNAI"

},

"ConnectionStrings": { // 数据库链接字符串

"DefaultConnection": "Server=localhost;Database=数据库名称;Persist Security Info=false;User ID=postgres;Password=密码;TrustServerCertificate=false;Port=5432" //postgres 数据库

}

}

Program.cs 文件

using Microsoft.Extensions.Options;

using WebAPI.Config;

var builder = WebApplication.CreateBuilder(args);

//处理日期,时区问题

AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);

// Add services to the container.

builder.Services.AddControllers(); // 可以使用mvc控制器组件

// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle

builder.Services.AddEndpointsApiExplorer();

builder.Services.AddSwaggerGen();

// 使用扩展类

builder.Register();

//添加跨域策略一

builder.Services.AddCors(options => {

options.AddPolicy("CorsPolicy", opt => opt.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().WithExposedHeaders("X-Pagination"));

});

//添加跨域策略二

builder.Services.AddCors(options =>

{

options.AddPolicy("CorsPolicy",

config =>

{

config

.WithOrigins("*") // * 表示所有,可以输入指定的域名,指定访问

.AllowAnyHeader()

.AllowAnyMethod();

});

});

var app = builder.Build();

// 静态文件响应配置

app.UseStaticFiles(new StaticFileOptions

{

OnPrepareResponse = ctx =>

{

ctx.Context.Response.Headers.Append("Cache-Control", "public, max-age=31536000"); // 缓存控制

ctx.Context.Response.Headers.Append("Access-Control-Allow-Origin", "*"); //第二个参数是 * 表示允许任何域名跨域访问

//ctx.Context.Response.Headers.Append("Access-Control-Allow-Origin", "http: localhost:8080"); // 第二个参数是特定域名则只有它可以访问

}

});

//Configuration 服务,可以获取到appsettings.json中的配置信息

var stringValue = builder.Configuration["Welcome"]; // 这个是直接拿到的值

//或

var objValue = builder.Configuration.GetSection("Welcome"); // 这个是拿到的对象形式

// Configure the HTTP request pipeline. 配置HTTP请求管道

if (app.Environment.IsDevelopment())

{

app.UseSwagger();

app.UseSwaggerUI();

}

app.UseAuthorization();

app.MapControllers();

//使用跨域策略

app.UseCors("CorsPolicy");

app.Run();

获取appsettings.json中的某个信息

定义数据appsettings.json中

{

"Logging": {

...

},

"AllowedHosts": "*",

"Welcome": "hello world" // 定义

}

获取数据Program.cs中

//Configuration 服务,可以获取到appsettings.json中的配置信息

var stringValue = builder.Configuration["Welcome"];

//或

var objValue = builder.Configuration.GetSection("Welcome");

依赖注入方法Program.cs中,也可以写扩展类

var builder = WebApplication.CreateBuilder(args);

#region 链接 Postgresql

builder.Services.AddDbContext(options => options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));

//处理日期,时区问题

AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);

#endregion

// 依赖注入【注册服务】 语法:

// builder.Services.AddTransient<接口名称, 接口实现类>();

//方式一:注册服务“单例模式”:AddSingleton<>

//AddSingleton 整个生命周期,最多只有一个实例

//方式二:注册服务 AddTransient<>

//每次请求这个接口的时候都会建立一个实例

//方式三:注册服务 AddScoped<>

//每次http请求会建立一个实例,如果是一个同意个http请求,不会新建,还是原来那个

//例如:

builder.Services.AddTransient();

var app = builder.Build();

// 中间件使用

// 开发环境开启,错误详细信息

if (env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

...

posted on

2024-10-21 10:40

HTLF

阅读(84)

评论(0)

收藏

举报

← 手机如何在微博发动图,轻松掌握这几步! 中级职称包过多少钱?不仅不靠谱,还很荒谬 →

相关推荐