2012-11-06 80 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>