文章目錄
- 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這個方法中。(不區分大小寫),最終返回如上結果。