Asp.net mvc 服务一般错误页面MVC-继续获取404

Asp.net mvc 服务一般错误页面MVC-继续获取404,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我试图在MVC2应用程序中提供一个自定义错误页面,该应用程序使用ELMAH作为错误日志() 我似乎不能正确地引用这一页 错误页面位于~/Views/Shared/error.aspx 在web.config中: <system.web> <customErrors mode="On" defaultRedirect="~/Shared/Error.aspx"/> </system.web> smae结果,即使我将defaultRedirect修

我试图在MVC2应用程序中提供一个自定义错误页面,该应用程序使用ELMAH作为错误日志()

我似乎不能正确地引用这一页

错误页面位于
~/Views/Shared/error.aspx

在web.config中:

<system.web>  
    <customErrors mode="On" defaultRedirect="~/Shared/Error.aspx"/>
</system.web> 
smae结果,即使我将
defaultRedirect
修改为
~/Views/Shared/Error.aspx

我做错了什么


编辑:我显然不想重定向到某个操作。我只想显示一个静态通用错误页面。

您应该将
defaultRedirect
设置为呈现错误页面的路由路径,例如

defaultRedirect="/home/error"
defaultRedirect="/error.html"
或静态HTML错误页,例如

defaultRedirect="/home/error"
defaultRedirect="/error.html"

试过了,同样的事情:
<代码>找不到资源。请求的URL:/Views/Shared/Error.html@baron-为什么您坚持将静态html页面放在Views文件夹中?视图不是静态html。这些路径被MVC阻止,您需要将文件放在其他地方,就像Chris在回答中向您展示的那样。默认情况下,
~/Views/Web.config
配置为阻止直接访问视图文件夹中的文件。尝试将静态错误页移动到根文件夹。我已经这样修复了它。但老实说,像这样提供静态html错误页面似乎很奇怪。我必须在主控制器Home/Error中编写一个新操作,并将其指向服务文件,而不是仅仅指向文件所在的位置?!或者我误解了你,只是把静态html页面不放在视图部分,而是放在与内容类似的地方?没错,你可以把静态html文件放在其他地方。出于安全考虑,视图文件夹被阻止,因为它们包含服务器端代码。