我在MVC中找到了几个错误页面的解决方案。大多数解决方案都基于路由和单独的错误控制器。但是我需要一个最简单的基于html的错误页面,根本没有预处理。
有没有办法绕过路由文件提供404.html,403.html和500.html文件作为静态内容?
我已将这三个html文件放在我的~/Views/Shared/
和以下的web.config中,即应用程序根目录下的那个:
<system.web>
<customErrors mode="Off" />
<error redirect="~/500.html" statusCode="500" />
<error redirect="~/404.html" statusCode="404" />
<error redirect="~/403.html" statusCode="403" />
</customErrors>
</system.web>
但是它会在本地的第三行抛出错误,而且从远程它会抛出500个内部错误,并带有默认的IIS主题。
哪个目录被视为提供静态HTML文件的根目录?
答案 0 :(得分:2)
CustomErrors模式应为“On”或“RemoteOnly”,并且不应关闭CustomErrors标记 - 正如@Preyash Desia所述
<customErrors mode="On">
答案 1 :(得分:1)
<system.web>
<customErrors mode="Off">
<error redirect="~/500.html" statusCode="500" />
<error redirect="~/404.html" statusCode="404" />
<error redirect="~/403.html" statusCode="403" />
</customErrors>
</system.web>
你有额外的&#34; /&#34;在第2行的末尾,它的无效xml;去掉它。