从模型到视图:如何用 .NET Core MVC 构建完整 Web 应用

        MVC模式自出现以来便成为了 Web 开发的基石,它通过将数据、业务逻辑与用户界面分离,使得应用更加清晰易于维护,然而随着前端技术的飞速发展和框架如 React、Vue、Angular 等的崛起,许多开发者开始倾向于前后端分离的方式,甚至完全不再依赖传统的 MVC 架构。

本篇文章仅仅做一个简单的介绍,选择什么模式开发还是取决于具体的项目情况!

目录

初识.net core

新建.net core

目录内容介绍 

项目基本开发

初识.net core

        什么是.net?一个由微软开发的跨平台开源的开发平台,用于构建各种应用程序,提供了一整套用于构建和运行应用程序的工具和库,开发者可以使用.net来创建web应用、桌面应用、移动应用、云服务、游戏等多方面应用。

        什么是.net framework?是微软于2002年发布的开发平台,主要用于构建windows操作系统上的桌面应用、web应用和服务,其包含了丰富的类库如asp.net和winforms以及一个运行时环境,使得开发者可以使用多种编程语言构建应用程序。

        什么是.net core?由微软开发的开源跨平台的开发框架,用于构建现代化高性能的应用程序,支持在不同操作系统上开发和运行应用,与传统的.net framework不同,.net core是专为跨平台开发设计的因此可以在不同平台上运行相同的代码,如下图所示:

.net的发展节奏基本上是每年11月份会发布新主要版本,以支持开发人员及其企业规范提供路线:

想要了解更改关于.net core相关知识也可以随时阅读 官方文档 ,里面也是详细记载了.net core相关的一些方法是,如下所示:

简而言之:.net core是.net平台的一部分,针对跨平台开发进行了优化,而.net framework是较老的、只支持windows框架,随着.net5及后续版本的发布,微软通过统一的.net平台,结合了.net core是.net和.net framework的优势,推动了技术的现代化和跨平台发展。

新建.net core

这里通过visual studio工具进行项目编写,没有下载过该工具的可以参考我之前的文章:地址 ,这里不再赘述,接下来讲解如何新建.net core项目进行开发,如下所示:

创建项目:打开visual studio之后点击创建新项目,然后选择C#语言web方向,然后选择当下模型-视图-控制器方式的.net core项目,如下:

然后输入创建项目的名称及其解决方案的名称和文件位置,选择好点击下一步即可:

然后这里我们选择.net core8版本进行项目创建,其他的配置直接默认即可,然后点击创建可以看到我们的 .net core 项目已经成功的被创建出来了:

然后我们直接点击开始执行不调试项目,可以看到我们的项目已经被成功运行起来了:

目录内容介绍 

接下来我们对.net core框架生成的目录结构进行一一的介绍,框架生成的目录如下所示:

Connected Services:作用是项目用来链接服务的,我们可以右键它来添加链接服务,

Properties:项目配置文件,文件夹下面的launchSettings.json配置文件作用是在项目启动的时候进行配置,比如说IIS启动项目我们可以配置其域名和端口号,后期的协议、端口号等等配置也可以在该文件中进行设置,如下所示:

wwwroot:用于存放前端的一些静态文件:

依赖项:专门用来管理NuGet安装的一些程序包,引入项目的时候可以通过它进行处理:

Controllers:控制器文件,主要用来编写业务逻辑并做一些业务逻辑计算

Models:模型文件,主要作为数据传输的一个存储介质,如各种实例对象

Views:视图文件,主要作为一个表现层用来展示给用户查看

这些文件就是MVC(模型-视图-控制器)模型,这里后期就是我们项目进行开发的地方:

appsettings.json:也是一个配置文件,用于存储应用程序的设置和配置项,这个文件通常包含应用程序在运行时所需的配置信息,比如数据库连接字符串、日志设置、外部服务的 API 密钥、应用程序的自定义设置等:

Program.cs:是应用程序的入口点,包含了应用启动的核心代码,是整个应用程序启动过程的起点负责配置和启动应用程序所需的所有内容,自.net6引入了简化的托管api之后,Program.cs 变得更加简洁和集中,通常与Startup.cs文件的功能合并了:

项目基本开发

接下来我们开始正式进行.net core开发,如下所示:

添加控制器:我们直接右键控制器文件添加新的控制器

这里我们选择空的模板,然后输入控制器的名称然后点击添加即可,如下所示:

添加视图:控制台当中的每一个文件里的index方法称为一个action,我们在创建好的控制器文件当中右键选择添加视图,然后选择第二个非空视图进行添加,然后再添加创建即可:

这样在视图添加的过程当中就会对应的在Views文件夹里面生成一个和上面创建控制器的前面的名称保持一样的文件夹出来,文件夹里的文件是一个以.cshtml为后缀结尾的文件,其指定的Index就是我们之前创建的控制器当中的index方法,控制台

接下来我们就可以在项目中编写代码了,首先我们先在控制台当中编写将数据传递到视图的不同机制方法,如下所示:

1)ViewBag:动态对象,用于将数据从控制器传递到视图

2)ViewData:字典,用于存储和传递数据,视图可以通过键访问它

3)TempData: 用于跨请求传递数据,通常用于重定向后传递数据

4)Session:用于在用户会话期间存储数据,数据会在多次请求之间保持

5)返回视图:普通对象,作为模型传递给视图

虽然控制器通过return View(User5); 只传递了模型User5但控制器中设置的ViewBag、ViewData、TempData和Session会随着请求的上下文一同传递,因此视图可以访问到这些数据,如下:

使用Session的话我们需要在入口文件中进行一个注册:

最终程序的效果如下所示:

### ASP.NET Core Web API项目结构组件和组织 #### 项目文件夹结构 典型的ASP.NET Core Web API项目遵循一种清晰且模块化的目录结构,有助于开发人员快速定位资源并理解应用程序的工作原理。常见的文件夹及其用途如下: - **Controllers**: 存放控制器类,这些类处理传入的HTTP请求并将响应返回给客户端[^1]。 - **Models**: 定义数据模型以及业务逻辑所需的实体对象。 - **Services**: 实现具体的服务接口,通常用于封装复杂的操作流程或外部依赖调用。 - **Repositories**: 负责访问持久化存储中的数据,如数据库查询与更新等功能。 - **DTOs (Data Transfer Objects)**: 创建专门的数据传输对象来简化不同层之间的交互过程。 - **Middlewares**: 中间件可以用来扩展应用管道,在每次HTTP请求到达目标之前执行某些预处理工作。 - **Extensions**: 放置自定义的帮助方法或者静态工具函数集合。 - **Configuration**: 配置设置保存在此处,比如连接字符串、第三方服务凭证等敏感信息应通过环境变量注入而非硬编码于源码内。 - **appsettings.json**: JSON配置文件,包含应用程序运行所需的各种参数设定。 #### 启动入口 Startup.cs 或 Program.cs 对于新版本的ASP.NET Core而言,`Program.cs` 文件承担起了初始化职责,而旧版可能还会存在 `Startup.cs` 。此部分主要负责构建宿主环境、注册必要的DI容器服务实例,并最终启动Web服务器监听端口等待接收网络请求。 ```csharp var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run(); ``` 上述代码片段展示了如何向依赖注入框架添加MVC特性支持,启用API文档生成功能,并映射路由到相应的控制处理器上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦世凡华、

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值