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支持]才会生成一个接口定义浏览界面

相关文章
|
开发框架 前端开发 JavaScript
ASP.NET Web Pages - 教程
ASP.NET Web Pages 是一种用于创建动态网页的开发模式,采用HTML、CSS、JavaScript 和服务器脚本。本教程聚焦于Web Pages,介绍如何使用Razor语法结合服务器端代码与前端技术,以及利用WebMatrix工具进行开发。适合初学者入门ASP.NET。
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
612 3
|
开发框架 .NET PHP
ASP.NET Web Pages - 添加 Razor 代码
ASP.NET Web Pages 使用 Razor 标记添加服务器端代码,支持 C# 和 Visual Basic。Razor 语法简洁易学,类似于 ASP 和 PHP。例如,在网页中加入 `@DateTime.Now` 可以实时显示当前时间。
|
开发框架 监控 前端开发
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
422 3
|
开发框架 .NET 中间件
ASP.NET Core Web 开发浅谈
本文介绍ASP.NET Core,一个轻量级、开源的跨平台框架,专为构建高性能Web应用设计。通过简单步骤,你将学会创建首个Web应用。文章还深入探讨了路由配置、依赖注入及安全性配置等常见问题,并提供了实用示例代码以助于理解与避免错误,帮助开发者更好地掌握ASP.NET Core的核心概念。
533 3
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
1050 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
663 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
450 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
555 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
439 0

热门文章

最新文章