2016-03-04 126 views
1

我想在我的asp.net項目中做一個自定義頁面。我爲404找不到錯誤創建了一個頁面。這裏是web配置部分:如何將所有頁面擴展重定向到自定義404未在asp.net項目中找到頁面?

<customErrors mode="On" defaultRedirect="Errors.aspx"> 
     <error statusCode="404" redirect="404.aspx"/> 
</customErrors> 

當我寫的網頁瀏覽器,如「(websitename)/asdfasdf.aspx」,我可以看到自定義錯誤頁,我創建的,但是當我寫「 (websitename)/ asdfasdf「,我看到」服務器錯誤/ 404 - 找不到文件或目錄。「頁面(默認錯誤頁面)。

你知道我該如何將所有頁面擴展名重定向到我的自定義錯誤頁面?

回答

0

我找到了解決辦法。我使用託管到我的網站,所以在託管有一個設置404未找到頁面。所以,它解決了。

0

在中的Application_Error Global.asax文件,找到服務器的錯誤代碼,並重定向到基於錯誤代碼對應頁面:

protected void Application_Error(object sender, EventArgs e) 
    { 
     Exception exception = Server.GetLastError(); 
     Response.Clear(); 

     HttpException httpException = exception as HttpException; 

     if (httpException != null) 
     { 
      string redirectToPage; 
      switch (httpException.GetHttpCode()) 
      { 
       // page not found 
       case 404: 
        redirectToPage = "(websitename)/PageNotFoundError.aspx"; 
        break; 
       default: 
        redirectToPage = "(websitename)/GeneralError.aspx"; 
        break; 
      } 

      Response.Redirect(redirectToPage); 
     } 
    } 
+0

我得到了與此代碼相同的結果。我想,我必須自動將.aspx擴展名添加到網址。像:如果用戶寫入/ sfsfsfdf,系統會自動添加.aspx ...可能嗎? – Emirhan

+0

系統根據global.asax文件中的Application_Error中編寫的代碼自動執行錯誤處理。您輸入錯誤的網址後是否嘗試過調試程序?它是否轉到上述方法?如果沒有,那就試試看看那裏發生了什麼。可能是因爲你看到調試結果後你必須改變一些東西 – Nab