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

1. 开发者异常页面

(1)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)
        {
        	// 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行
# 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字符串

在这里插入图片描述

在这里插入图片描述

相关推荐

  1. Eureka工作原理代码实例

    2024-07-10 21:16:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 21:16:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 21:16:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 21:16:03       45 阅读
  4. Python语言-面向对象

    2024-07-10 21:16:03       55 阅读

热门阅读

  1. 洛谷 B4006 [GESP202406 四级] 宝箱

    2024-07-10 21:16:03       23 阅读
  2. Qt常用基础控件总结—菜单控件(QMenu类)

    2024-07-10 21:16:03       22 阅读
  3. 缓存击穿、缓存穿透、缓存雪崩以及应对措施

    2024-07-10 21:16:03       16 阅读
  4. Python基础学习笔记——异常

    2024-07-10 21:16:03       21 阅读
  5. C语言 printf函数缓冲机制

    2024-07-10 21:16:03       23 阅读
  6. DFS与BFS

    DFS与BFS

    2024-07-10 21:16:03      16 阅读
  7. 每日一题cf

    2024-07-10 21:16:03       19 阅读