ASP.NET Core----基礎學習03----開發者異常頁面 MVC工作原理及實現

文章目錄

      • 1. 開發者異常頁面
        • (1)Startup.cs 頁面的基礎配置
        • (2)自定義顯示報錯代碼的前后XX行
      • 2. MVC 的原理
      • 3. MVC 的實現
      • 4.默認路由路徑
      • 5.返回Json字符串

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字符串

在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42825.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42825.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42825.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FlowUs息流:提升學術研究效率的協作神器

在學術界&#xff0c;論文撰寫和小組協作是日常研究工作的重要組成部分。FlowUs作為一個多功能的協作平臺&#xff0c;為大學教授和學生提供了一個無縫的工作環境&#xff0c;使這些任務變得更加順暢。 FlowUs模板中心 高校學生教師 專用模板免費 &#x1f393; 教授的論文管…

Webpack安裝以及快速入門

3 Webpack 1 什么是Webpack https://webpack.js.org/ (官網) webpack 是一個現代 javascript 應用程序的 靜態模塊打包器 (module bundler) 待會要學的 vue-cli 腳手架環境, 集成了 webpack, 所以才能對各類文件進行打包處理 webpack是一個 靜態模塊 打包器,可以做以下的這…

Spring Boot (9):AOP實戰經驗

1 概述 介紹完Spring AOP所具備的功能特性&#xff0c;接下來&#xff0c;看一下再應用程序中使用AOP時應該遵循哪些最佳實踐。 2 活用切點表達式 Spring AOP的一大特色在于在開發人員提供了非常靈活的切點機制。Spring在編譯期間處理切入點&#xff0c;并嘗試進行優化匹配。然…

計算機的錯誤計算(二十四)

摘要 計算機的錯誤計算&#xff08;二十一&#xff09;就案例 展示了“兩個不相等數相減&#xff0c;差為0”。本節給出新的計算過程&#xff1a;不停增加計算精度直到出現非0結果。這個過程與結果表明&#xff0c;即使是專業數學軟件&#xff0c;對這個問題的處理&#xff0…

1 HTML and CSS

HTMl(超文本標記語言) HTML 概述 超文本標記語言用來描述和定義網頁的內容 HTML(超文本標記語言——HyperText Markup Language)是構成 Web 世界的一磚一瓦;它定義了網頁內容的含義和結構 “超文本”(hypertext)是指連接單個網站內或多個網站間的網頁的鏈接 1. HTML標簽功能區分…

Qt之多線程編程(QThread)

文章目錄 前言Qt多線程的基本使用如何移動線程常用的一些函數示例代碼總結 前言 在現代計算機系統中&#xff0c;多線程編程已經成為一種常見的編程模式&#xff0c;它可以有效地利用多核處理器的計算能力&#xff0c;提高程序的執行效率。Qt作為一種跨平臺的應用程序開發框架…

【ffmpeg系列一】源碼構建,ubuntu22與win10下的過程對比。

文章目錄 背景ubuntu22結論 win10過程 對比結論 背景 順手編譯個ffmpeg試試&#xff0c;看看不同平臺下誰的配置比較繁瑣。 先讓gpt給出個教程&#xff1a; ubuntu22 使用elementary-os7.1構建&#xff0c;看看有幾個坑要踩。 錯誤1&#xff1a; 依賴libavresample-dev未…

Linux-學習-05-openssl安裝與卸載

目錄 一、環境信息 二、卸載步驟 1、使用包管理器卸載 三、安裝步驟 1、下載OpenSSL源代碼 2、解壓并進入目錄 3、配置、編譯和安裝 4、更新軟鏈接 5、更新共享庫緩存 6、/etc/profile添加環境變量 7、環境變量生效 8、openSSL版本驗證 一、環境信息 名稱值CPUInte…

【人工智能】-- 智能家居

個人主頁&#xff1a;歡迎來到 Papicatch的博客 課設專欄 &#xff1a;學生成績管理系統 專業知識專欄&#xff1a; 專業知識 文章目錄 &#x1f349;引言 &#x1f349;基于深度卷積神經網絡的表情識別 &#x1f348;流程圖 &#x1f348;模型設計 &#x1f34d;網絡架…

[圖解]企業應用架構模式2024新譯本講解24-標識映射3

1 00:00:00,460 --> 00:00:02,580 超類定義了一個抽象方法 2 00:00:03,170 --> 00:00:03,450 3 00:00:06,410 --> 00:00:09,690 把reader內容 4 00:00:10,870 --> 00:00:12,350 把它變成一個領域對象 5 00:00:13,690 --> 00:00:15,800 但這里只是把它變成一個…

python安裝PyTorch+cuda

1,最終結果 import torchprint(torch.cuda.is_available()) #顯示True&#xff0c;則安裝成功 print(torch.__version__)#打印當前PyTorch版本號。 print(torch.version.cuda)#打印當前CUDA版本號。 print(torch.backends.cudnn.version())# 打印當前cuDNN版本號。 print(torc…

Ruby 語法

Ruby 語法 Ruby 是一種動態、開放源代碼的編程語言,由日本的松本行弘(Yukihiro Matsumoto)于1995年開發。Ruby 的設計哲學強調簡潔和效率,同時也是一種表達力強的語言。它結合了多種編程語言的特性,包括 Perl、Smalltalk、Eiffel、Ada 和 Lisp。Ruby 的語法簡單直觀,使得…

【愛上C++】vector用法詳解

文章目錄 一:vector簡介二:vector的創建和初始化三:vector的遍歷1.[]下標2.at()3.迭代器遍歷4.范圍for 四:vector的空間1.size2.max_size3.capacity4.reserve5.resize6.empty 五:vector的增刪查改1.push_back2.pop_back3.find4.insert5.erase6.swap7.assign Hello~同學們好&…

mAP(平均精度均值)全面解讀:評估目標檢測性能的黃金標準

mAP&#xff08;平均精度均值&#xff09;全面解讀&#xff1a;評估目標檢測性能的黃金標準 在目標檢測領域&#xff0c;評估模型性能是至關重要的一步。mAP&#xff08;mean Average Precision&#xff0c;平均精度均值&#xff09;作為目標檢測任務中一個關鍵的性能評估指標…

搭建純凈的SpringBoot工程

pom文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVe…

docker nginx mysql redis

啟動沒有數據卷的nginx docker run -d -p 86:80 --name my-nginx nginx把/etc/nginx中的配置復制到宿主機 docker cp my-nginx:/etc/nginx /home/nginxlkl把/html 中的文件復制到宿主機 docker cp my-nginx:/etc/nginx /home/nginxlkl刪除當前鏡像 docker rm -f my-nginx重新起…

ArrayList,Vector, LinkedList的存儲性能和特性舉例說明

ArrayList、Vector、LinkedList是Java中常用的三種集合類型&#xff0c;它們各自具有不同的存儲性能和特性。下面將分別舉例說明這三種集合的存儲性能和特性&#xff1a; ArrayList 存儲性能與特性&#xff1a; 底層實現&#xff1a;ArrayList底層是通過數組實現的&#xff…

Solidity:變量數據存儲和作用域 storage/memory/calldata

Solidity中的引用類型? 引用類型(Reference Type)&#xff1a;包括數組&#xff08;array&#xff09;和結構體&#xff08;struct&#xff09;&#xff0c;由于這類變量比較復雜&#xff0c;占用存儲空間大&#xff0c;我們在使用時必須要聲明數據存儲的位置。 數據位置? …

HarmonyOS ArkUi 字符串<展開/收起>功能

效果圖&#xff1a; 官方API&#xff1a; ohos.measure (文本計算) 方式一 measure.measureTextSize 跟方式二使用一樣&#xff0c;只是API調用不同&#xff0c;可仔細查看官網方式二 API 12 Preview Component export struct CustomTextSpan {State maxLines: number 1/…

迭代器模式(大話設計模式)C/C++版本

迭代器模式 C #include <iostream> #include <string> #include <vector>using namespace std;// 迭代抽象類,用于定義得到開始對象、得到下一個對象、判斷是否到結尾、當前對象等抽象方法&#xff0c;統一接口 class Iterator { public:Iterator(){};virtu…