2014-11-02 39 views
0

IDE: 的Visual Studio 2013旗艦版
語言: C#ASP.NET網頁(CSS)
問題:嗨!我有一個學校的任務,我正在使用ASP.NET(C#)製作一個網站,我需要添加3個自定義錯誤。 我知道如何強制一個404錯誤(找不到頁面)和一個500錯誤(在頁面後面的代碼中出錯),但我需要第三個,我不知道我可以強制什麼。如何強制ASP.NET中的HTTP錯誤?

在我的導航菜單中,我有一個「404page.aspx」的href,但那個不存在於我的解決方案中,所以我得到了404錯誤。
在菜單中,我也有一個「500error.aspx」的href,並且在後面的代碼中有錯誤的代碼(「500error.aspx.cs」),所以我得到了500錯誤。

Web.Config文件:

<customErrors mode="On" defaultRedirect="Error.aspx"> 
    <error statusCode="404" redirect="Error.aspx?error=404"/> 
    <error statusCode="500" redirect="Error.aspx?error=500"/> 
    <error statusCode="x" redirect="Error.aspx?error=x"/> 
</customErrors> 

Error.aspx.cs(後面Error.aspx代碼)文件:

protected void Page_Load(object sender, EventArgs e) 
    { 
     LabelResult.Text = ""; 
      String errorcode = Request.QueryString.Get("error"); 
      if (errorcode.ToString().Equals("404")) 
      { 
       LabelResult.Text = "Page contains a 404 error."; 
      } 
      if (foutcode.ToString().Equals("500")) 
      { 
       LabelResult.Text = "Page contains a 500 error."; 
      } 

    } 

所以基本上我需要一個第三HTTP錯誤我可以強制使用C#或ASP.NET。

+0

HTTP 403基本上是告訴你,你沒有權限訪問頁。 – DavidG 2014-11-02 22:38:28

+0

@DavidG我知道403做什麼,但我該如何強制它? – Kevin 2014-11-02 22:41:56

回答

3

你要麼需要訪問您沒有權限查看或手動拋出自己的錯誤代碼後面的頁面:

throw new HttpException(403, "Access denied"); 
+0

因此,如果我對一個名爲「300error.aspx」的新頁面做了一個href,但是對於Page_Load後面的代碼,它會強制執行403錯誤? – Kevin 2014-11-02 22:54:54

+0

理論上是的(儘管我可以稱它爲'403error.aspx'而不是300!) – DavidG 2014-11-02 22:55:35

+0

將href指向300error.aspx,並將urL代碼放在Page_Load上,但它給出了這個錯誤:「類型爲'System'的異常。 Web.HttpException'發生在CeeLearnAndDo.dll中,但未在用戶代碼中處理「eventho我的錯誤在我的Web.Config – Kevin 2014-11-02 22:59:27