8 创建第一个ASP.NET Core应用之项目结构详解

在上一篇中,我们已经完成了创建第一个ASP.NET Core应用的步骤,接下来我们将对项目的结构进行深入解析。理解项目的结构对于日后的开发至关重要,因为它决定了我们如何组织代码和资源,从而提高开发效率。

一、项目结构概述

一个典型的ASP.NET Core项目在创建后,会生成一个标准的项目结构。以下是一个基本的ASP.NET Core项目的目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
MyFirstAspNetCoreApp/

├── wwwroot/
│ ├── css/
│ ├── js/
│ └── lib/

├── Controllers/
│ └── HomeController.cs

├── Models/
│ └── ExampleModel.cs

├── Views/
│ └── Home/
│ └── Index.cshtml

├── appsettings.json
├── Program.cs
└── Startup.cs

各个部分的详细解析

1. wwwroot/ 文件夹

wwwroot 文件夹是用于存放静态文件的地方,如 HTML、CSS、JavaScript 和图像等。这些文件可以直接通过 URL 访问,相当于项目的“根”目录。例如,如果在 wwwroot/css/style.css 中有一个样式文件,我们可以通过 http://localhost:5000/css/style.css 直接访问它。

注意:确保所有静态文件都放在 wwwroot 文件夹内,以便它们能被正确地托管。

2. Controllers/ 文件夹

Controllers 文件夹存放控制器类。控制器是 MVC 模式中的核心组成部分,负责处理用户的输入并返回相应的结果。例如,我们创建一个简单的控制器 HomeController.cs 如下:

1
2
3
4
5
6
7
8
9
10
11
12
using Microsoft.AspNetCore.Mvc;

namespace MyFirstAspNetCoreApp.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
}

在上面的代码中,Index 方法将返回一个视图。

3. Models/ 文件夹

Models 文件夹用于存放数据模型和业务逻辑。模型通常与我们的数据库交互,并负责数据的验证和管理。以下是一个简单的模型示例 ExampleModel.cs

1
2
3
4
5
6
7
8
namespace MyFirstAspNetCoreApp.Models
{
public class ExampleModel
{
public int Id { get; set; }
public string Name { get; set; }
}
}

4. Views/ 文件夹

Views 文件夹中存放视图文件。视图负责显示用户界面,通常使用 Razor 语法。假设我们在 Views/Home 文件夹中有一个 Index.cshtml 文件:

1
2
3
4
5
6
@{
ViewData["Title"] = "Home Page";
}

<h1>Hello, ASP.NET Core!</h1>
<p>Welcome to your first ASP.NET Core application.</p>

5. appsettings.json

appsettings.json 文件用于存储应用程序的配置设置。你可以在这里定义数据库连接字符串、日志级别等。例如:

1
2
3
4
5
6
7
8
9
10
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}

6. Program.cs

Program.cs 是应用程序的入口点。其中包含 Main 方法,负责启动应用程序并设置 Web 服务器。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}

7. Startup.cs

Startup.cs 文件定义了应用程序的请求处理管道、服务配置等。在这里,我们可以配置服务,例如添加 MVC 支持:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}

public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}

小结

通过了解每个文件夹和文件的功能,我们可以更有效地组织和管理我们的代码。ASP.NET Core 提供了一个灵活且结构清晰的设计,使得开发者能够快速上手并进行扩展。

下一篇文章我们将会探讨如何运行这个应用程序并观察它的行为。希望大家对项目结构的解析有所帮助,提前打下良好的基础。

8 创建第一个ASP.NET Core应用之项目结构详解

https://zglg.work/aspnet-core-zero/8/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论