問題
在沒有修改任何配置的情況下,這是用戶使用 Chrome 訪問不存在的URL時會看到的內容:
幸運的是,處理錯誤狀態代碼非常簡單,我們將在下面介紹三種技術。
解決方案
在以前的ASP.NET MVC版本中,主要在 web.config 中處理404錯誤的。
您可能記得在 <customErrors> 節點中配置ASP.NET管道處理404錯誤,以及在低版本的IIS中通過 <httpErrors> 節點處理 404錯誤。好像有點混亂。
在.Net Core中,情況就不同了,沒有必要使用XML配置(盡管如果您是通過IIS代理,您仍然可以在web.config中使用 httpErrors,并且您真的想這樣嗎:-))。
在處理 not-found 錯誤時,我們需要處理兩種不同的情況。
URL與任何路由不匹配的情況。在這種情況下,如果我們無法確定用戶正在訪問什么,我們需要返回一個通用的未找到的頁面。有兩種常見的處理方法,但首先我們將討論第二種情況。URL與路由匹配的情況,但是一個或多個參數無效,我們可以用自定義視圖來解決這個問題。
自定義視圖
這種情況的一個例子是具有無效或過期ID的產品頁面。在這里,我們知道用戶正在查看產品,而不是返回通用錯誤,我們可以更友好的頁面,返回自定義未找到產品的的頁面。這仍然需要返回404狀態代碼,但是使用不通用的頁面,同時也可以向用戶顯示類似或受歡迎的產品。
處理這些情況是非常瑣碎,我們需要做的是在返回我們的自定義視圖之前設置狀態代碼:
public async Task<IActionResult> GetProduct(int id) { var viewModel = await _db.Get<Product,GetProductViewModel>(id); if (viewModel == null) { Response.StatusCode = 404; return View("ProductNotFound"); } return View(viewModel); }
分享文章:詳解ASP.NETCore處理404NotFound-創新互聯
轉載源于:http://vcdvsql.cn/article42/diphhc.html
成都網站建設公司_創新互聯,為您提供移動網站建設、品牌網站設計、網站排名、網站建設、網站策劃、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯