詳解ASP.NETCore處理404NotFound-創(chuàng)新互聯(lián)

問題

專注于為中小企業(yè)提供網(wǎng)站制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)上栗免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

在沒有修改任何配置的情況下,這是用戶使用 Chrome 訪問不存在的URL時(shí)會(huì)看到的內(nèi)容:

幸運(yùn)的是,處理錯(cuò)誤狀態(tài)代碼非常簡單,我們將在下面介紹三種技術(shù)。

解決方案

在以前的ASP.NET MVC版本中,主要在 web.config 中處理404錯(cuò)誤的。

您可能記得在 <customErrors> 節(jié)點(diǎn)中配置ASP.NET管道處理404錯(cuò)誤,以及在低版本的IIS中通過 <httpErrors> 節(jié)點(diǎn)處理 404錯(cuò)誤。好像有點(diǎn)混亂。

在.Net Core中,情況就不同了,沒有必要使用XML配置(盡管如果您是通過IIS代理,您仍然可以在web.config中使用 httpErrors,并且您真的想這樣嗎:-))。

在處理 not-found 錯(cuò)誤時(shí),我們需要處理兩種不同的情況。

URL與任何路由不匹配的情況。在這種情況下,如果我們無法確定用戶正在訪問什么,我們需要返回一個(gè)通用的未找到的頁面。有兩種常見的處理方法,但首先我們將討論第二種情況。URL與路由匹配的情況,但是一個(gè)或多個(gè)參數(shù)無效,我們可以用自定義視圖來解決這個(gè)問題。

自定義視圖

這種情況的一個(gè)例子是具有無效或過期ID的產(chǎn)品頁面。在這里,我們知道用戶正在查看產(chǎn)品,而不是返回通用錯(cuò)誤,我們可以更友好的頁面,返回自定義未找到產(chǎn)品的的頁面。這仍然需要返回404狀態(tài)代碼,但是使用不通用的頁面,同時(shí)也可以向用戶顯示類似或受歡迎的產(chǎn)品。

處理這些情況是非?,嵥椋覀冃枰龅氖窃诜祷匚覀兊淖远x視圖之前設(shè)置狀態(tài)代碼:


  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-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://bm7419.com/article42/diphhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、網(wǎng)站建設(shè)、網(wǎng)站策劃、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)