6.1 ASP.NET Core Web 入门

简介: ASP.NET Core中,严格来讲只有一个Asp.net Core MVC一个框架,Asp.net Core MVC既支持基于视图的MVC开发,也支持Web API和Razor Pages开发。

6.1 ASP.NET Core Web 入门

ASP.NET Core中,严格来讲只有一个Asp.net Core MVC一个框架,Asp.net Core MVC既支持基于视图的MVC开发,也支持Web API和Razor Pages开发。

ASP.NET Core MVC项目

在VS2022中,一定选择ASP.NET Core Web应用(模型-视图-控制器)项目模板

项目中wwwroot文件夹包含图片、JS、CSS等静态文件,Models、Views、Controllers是与MVC相关的文件夹,appsetting.json是默认配置文件,program.cs为入口代码

MVC模式包括:模型、视图和控制器三部分,视图负责展示内容,也就是html网页;控制器负责处理用户的请求和为视图准备数据;模型负责在视图和控制器之前传递数据。

MVC约定:

MVC中,控制器由Controller类实现,视图一般为*.cshtml文件,模型则是C#中的普通类。

控制器的名字一般以Controller结尾,并放在Controllers文件夹下

视图一般放到Views/控制器名称文件夹下

模型则放在model文件夹下

工作过程

浏览器提交的请求会被封装到模型类的对象中,然后传递给控制器,控制器对其进行处理后将结果放到模型类的对象中再传给视图,视图则解析模型对象渲染成HTML输出给浏览器。

案例:

  1. 在Models文件夹下创建一个类

public record Person(string Name, bool IsVIP, DateTime CreatedTime);

  1. 在Controllers文件夹下创建一个继承自Controller类的TestController类

publicclassTestController : Controller

{   //控制器类中被外界直接访问的方法叫做操作方法

    publicIActionResultDemo1(inta) //返回类型为IActionResult

    {

        varmodel=newPerson("Zack", true, newDateTime(1999, 9, 9));

        returnView(model);//将model对象传递给与操作方法同名的View

    }

}

  1. 在views文件夹中创建Test子目录,然后再Test子目录中添加视图,视图名称为Demo1.cshtml

@model MVC项目1.Models.Person

<div>姓名:@Model.Name</div>

<div>@(Model.IsVIP?"VIP":"普通会员")</div>

<div>注册时间:@Model.CreatedTime</div>

@model MVC项目1.Models.Person:视图文件是接收Person类数据的强类型视图

以@开头的代码后面跟C#语句,这种代码叫做服务器端代码

我们在访问.../Test/Demo1地址时,框架会寻找名为TestController类中的Demo1方法来处理用户的请求,运行该操作方法,则会将view渲染成HTML输出给浏览器

ASP.NET Core Web API

MVC开发的系统一般是在浏览器中查看,而目前访问服务器的客户端已不仅仅是浏览器了,很多客户端和服务器之间一般都是使用JSON结构来传递数据,所以需要将数据进行结构化,执行结构化操作的服务叫做Web API。

ASP.NET Core Web API与MVC的项目目录结构相似,但是没有Views和Models文件夹,因为Web API直接返回的是结构化数据,不需要提供展示数据的视图。

样板代码WeatherForecastController,继承自ControllerBase类,MVC中Controller类同样是继承自ControllerBase,Controller类中多了View和MVC中视图相关的代码。

   [ApiController] //Web API都要加

   [Route("[controller]")] //设定路由,[controller]代表控制器的名字,在这里是WeatherForecast

                           //表示对/WeatherForecast路径的请求由WeatherForecastController来处理

   publicclassWeatherForecastController : ControllerBase

   {

       //当对/WeatherForecast路径发送Get请求时由该方法Get处理

       [HttpGet(Name="GetWeatherForecast")]

       publicIEnumerable<WeatherForecast>Get()

       {...

       }

   }

Post Put等方法

先增加一个类SaveNoteRequest,然后在WeatherForecastController中增加一个SaveNote方法,并设定[HttpPost]

publicrecordSaveNoteRequest(stringTitle, stringContent);

[HttpPost]

publicstringSaveNote(SaveNoteRequestreq)

{

   stringfilename=$"{req.Title}.txt";

   System.IO.File.WriteAllText(filename, req.Content);

   returnfilename;

}

可以在自带Swagger页面中进行调试查看结构数据,注意只有勾选[启用OpenAPI支持]才会生成一个接口定义浏览界面

相关文章
|
8天前
|
开发框架 .NET 中间件
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
|
8天前
|
开发框架 缓存 前端开发
利用Visual Basic构建高效的ASP.NET Web应用
【4月更文挑战第27天】本文探讨使用Visual Basic与ASP.NET创建高效Web应用的策略,包括了解两者基础、项目规划、MVC架构、数据访问与缓存、代码优化、异步编程、安全性、测试及部署维护。通过这些步骤,开发者能构建出快速、可靠且安全的Web应用,适应不断进步的技术环境。
|
5天前
|
开发框架 中间件 数据库
Django 框架入门全攻略:轻松构建 Web 应用
【5月更文挑战第18天】本文是 Django 入门教程,介绍了如何使用 Django 构建 Web 应用。内容包括安装、项目与应用创建、模型定义、数据库迁移、视图编写、路由配置、模板系统、表单处理和中间件的使用。通过实例展示了 Django 基本流程,帮助初学者快速上手。Django 提供高效工具,便于开发者聚焦业务逻辑,轻松构建功能丰富的 Web 应用。
31 5
|
5天前
|
数据库连接 Python
Flask 框架入门与实践:构建你的第一个 Web 应用
【5月更文挑战第18天】本文介绍了使用 Flask 框架构建第一个 Web 应用的步骤。首先通过 `pip install Flask` 安装框架,然后编写基本的 Python 代码创建应用,包括定义路由和响应。示例展示如何显示 &quot;Hello, World!&quot;,并扩展到显示用户信息的功能。利用模板(如 `index.html`)可使页面更丰富。随着学习深入,可以利用 Flask 的更多特性,如表单处理和数据库连接,来构建更复杂的 Web 应用。本文旨在激发读者对 Flask 和 Web 开发的兴趣,鼓励不断探索和实践。
43 7
|
6天前
|
JSON JavaScript 前端开发
web前端入门到实战:32道常见的js面试题,2024年最新秋招是直接面试吗
web前端入门到实战:32道常见的js面试题,2024年最新秋招是直接面试吗
|
6天前
|
JavaScript 前端开发 程序员
web前端入门到实战:32道常见的js面试题(1),面试哪些
web前端入门到实战:32道常见的js面试题(1),面试哪些
|
8天前
|
XML 开发框架 .NET
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
20 1
|
8天前
|
开发框架 JSON .NET
.Net4.0 Web.config 配置实践
.Net4.0 Web.config 配置实践
|
8天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
31 1
|
8天前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。