MVC4自定义404页面?

5
我已经将这个放在web.config文件中的 <system.webServer> 部分。
<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 网站上让它工作。 我如何使其工作?(我不想使用 "Redirect/File" 方法)
2个回答

10

这是我在一个现有的MVC 4项目中拥有的:

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

我有一个Errors控制器,以及"General"和"Http404"(动作方法)的视图。

运作得很好。


1
我已经尝试了很多次,但它仍然显示默认的asp错误页面。 - Sinaesthetic
你是否也创建了错误控制器和视图? - Ed DeGagne
3
我做了,然而我找到了自己的问题。实际上我返回了一个 HttpStatusCodeResult,就像框架通常会做的那样。显然这不被视为错误,因此自定义错误页面没有被调用。我改变了代码,抛出了一个 HttpException,现在它可以工作了。不确定对此感觉如何。 - Sinaesthetic

3

问题的一部分可能也源自于<customErrors>标签不是<system.webServer>的有效子级。请尝试将其放在<system.web>中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接