ASP.NET Core----基础学习03----开发者异常页面 & MVC工作原理及实现

文章目录

1. 开发者异常页面

(1)Startup.cs 页面的基础配置
csharp 复制代码
namespace ASP.Net_Blank
{
    public class Startup
    {
        private readonly IConfiguration _configuration;

        public Startup(IConfiguration iconfiguration)
        {
            _configuration = iconfiguration;
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger<Startup> logger)
        {
        	// app.UseDeveloperExceptionPage() 这个调用需要在中间件使用之前调用,否者中间件运行过程中的报错可能无法显示出来。
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseFileServer();

            app.UseStaticFiles();

            app.Run(async (context) =>
            {
                throw new Exception("This is an Error");
                await context.Response.WriteAsync("third MiddleWare");
            });

        }
    }
}

如下红框中是核心添加的代码:

出错代码的具体位置:

如果请求的url包含参数的显示:

请求的Headers信息头:

(2)自定义显示报错代码的前后XX行
csharp 复制代码
# Startup.cs 文件详情

namespace ASP.Net_Blank
{
    public class Startup
    {
        private readonly IConfiguration _configuration;

        public Startup(IConfiguration iconfiguration)
        {
            _configuration = iconfiguration;
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger<Startup> logger)
        {
            if (env.IsDevelopment())
            {
                DeveloperExceptionPageOptions developerExceptionPageOptions = new DeveloperExceptionPageOptions();
                developerExceptionPageOptions.SourceCodeLineCount = 3;      // 设置代码报错行的前后3行显示出来
                app.UseDeveloperExceptionPage(developerExceptionPageOptions);
            }

            app.UseFileServer();

            app.UseStaticFiles();

            app.Run(async (context) =>
            {
                throw new Exception("This is an Error");
                await context.Response.WriteAsync("third MiddleWare");
            });

        }
    }
}

2. MVC 的原理

  • Model(模型): 包含一组数据的类和管理该数据的逻辑信息
  • View(视图): 包含显示逻辑,用于显示Controller提供给它的模型中的数据
  • Controller(控制器):处理Http请求,调用模型,选择一个视图来呈现该模型。

3. MVC 的实现

创建Controllers 文件夹并创建控制器(HomeController.cs):

HomeController.cs创建好之后,修改为返回string:

Startup.cs文件添加MVC 服务和调用该服务

最终的呈现结果:

4.默认路由路径

通过如上启动的页面,发现访问了http://localhost:5188/ 也到达了/home/index 路径下面的该显示的视图。通过追踪UseMvcWithDefaultRoute方法的源码,可以查看到。

  • 该方法会默认进入到home这个controller(HomeController简称Home), 中的index这个方法中。(不区分大小写),最终返回如上结果。

5.返回Json字符串

相关推荐
做cv的小昊1 天前
计算机图形学:【Games101】学习笔记05——着色(插值、高级纹理映射)与几何(基本表示方法)
笔记·opencv·学习·计算机视觉·图形渲染·几何学
车载测试工程师1 天前
CAPL学习-CAN相关函数-统计API函数
网络·网络协议·学习·capl·canoe
kylezhao20191 天前
第1章:第一节 开发环境搭建(工控场景最优配置)
开发语言·c#
好奇龙猫1 天前
【AI学习-comfyUI学习-第二十四节-open(contorlnet多重处理)+图生图openpose-各个部分学习】
人工智能·学习
wanzhong23331 天前
CUDA学习5-矩阵乘法(共享内存版)
深度学习·学习·算法·cuda·高性能计算
钰fly1 天前
C#文件与数据操作核心概念手册
c#
阿蒙Amon1 天前
C#每日面试题-简述C#访问修饰符
windows·microsoft·c#
PNP Robotics1 天前
PNP机器人受邀参加英业达具身智能活动
大数据·人工智能·python·学习·机器人
iconball1 天前
个人用云计算学习笔记 --24 虚拟化、KVM 基础使用与热迁移实验、VMware ESXi笔记
运维·笔记·学习·云计算
酩酊仙人1 天前
ABP+Hangfire实现定时任务
后端·c#·asp.net·hangfire