我在多个地方见过
[和上一个问题在这里] 如何使用 WebMatrix 在 ASP.NET 网页中制作自定义错误页面?
如何设置 web.config 文件为给定的状态代码强制自定义错误页面(我认为我唯一关心的是“500”和“404”)。
我使用它作为<system.web>
web.config XML 中的元素。
<system.web>
<compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /></assemblies></compilation>
<customErrors mode="On">
<error statusCode="500" redirect="~/Error.cshtml" />
<error statusCode="404" redirect="~/Error404.cshtml" />
</customErrors>
</system.web>
状态代码的自定义错误页面,“500”在正常的服务器端错误上服务得很好,但由于某种原因,无论我做什么,我似乎都无法获得状态代码“404”的自定义错误页面" 显示,例如,如果在页面上单击了损坏的链接。相反,它只显示正常的“404,找不到资源”默认页面。
我还尝试更改<error>
标签的顺序(这不应该有帮助,但正如你所看到的,我没有合理的尝试,哈哈)。
我是否误解了这整件事是如何工作的,或者我只是在某种程度上弄错了配置/语法?
- - - - - - - - - - - - - - - - 更新 - - - - - - - - - ----------------------
好的,很明显,如果正常链接损坏,我的自定义 404 页面可以工作,但是,我有.cs
包含某些 html 生成方法的文件。
在一个二级页面上,这将是它的全部内容:
@Html.Raw(ContentGenerator.Generate("CityCouncil"))
页面上显示的值来自数据库,在添加到字符串时进行编码,然后写入页面。如果 C# 字符串包含损坏的链接,则不会显示默认错误页面。为什么这会有所作为?我的猜测是,这是一个时间问题,当 C# 将 HTML 写入页面时,web.config 文件将不再影响这个链接或其他东西。
有没有办法仍然为这些链接实现默认错误页面?