2012-11-06 244 views
5

我有這個發生在web.config中<system.webServer>MVC4自定義404頁面?

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" subStatusCode="-1" path="/cv/" responseMode="ExecuteURL" /> 
</httpErrors> 

,用於臨時在這裏[所有MyApplication]/CV /返回一個頁面的路徑。

但是,如果我去[myapplication]/[任何不存在的東西]得到404響應,沒有任何反應。

這是目前正在我的舊網站形式的網站,但我無法得到它在MVC4網站上工作。 我該如何做這項工作? (我不想用「重定向/文件」方法)

回答

10

這是我在當前的MVC 4項目:

<customErrors mode="On" defaultRedirect="~/Error/General"> 
    <error statusCode="404" redirect="~/Error/Http404" /> 
</customErrors> 

我有一個錯誤控制器和視圖「一般「和」Http404「(操作方法)。

工程就像一個魅力。

+1

我已經試過這無數次了,但它一直顯示默認的asp錯誤頁面 – Sinaesthetic

+0

您是否還創建了錯誤控制器和視圖? http://stackoverflow.com/questions/13905164/how-to-make-custom-error-pages-work-in-asp-net-mvc-4 –

+3

我做到了。但是,我發現我的問題。通常,我實際上會像框架一樣返回一個HttpStatusCodeResult。顯然,這不是拾取爲錯誤,所以自定義錯誤頁面永遠不會被調用。我改變了我的代碼來拋出一個HttpException,而現在它工作。不知道我對此感覺如何 – Sinaesthetic

3

部分問題也可能源於<customErrors>標記不是<system.webServer>的有效子標記。請嘗試將其放入<system.web>