【发布时间】:2018-04-06 17:20:18
【问题描述】:
我终于能够让 404 和 500 错误重定向,但是当他们这样做时,它们给了我两个结果之一。
当我使用它时(特别是 404):
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404"/>
<remove statusCode="500"/>
<error statusCode="404" path="/Home/PageNotFound" responseMode="ExecuteURL" />
<error statusCode="500" path="/Home/InternalServerError" responseMode="ExecuteURL" />
</httpErrors>
然后输入一个不存在的链接(例如,localhost:11111/yo),我得到一个没有任何内容的白页。
当我使用它时(特别是 404s):
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404"/>
<remove statusCode="500"/>
<error statusCode="404" path="/Home/PageNotFound" responseMode="File" />
<error statusCode="500" path="/Home/InternalServerError" responseMode="File" />
</httpErrors>
然后输入一个不存在的链接(例如,localhost:11111/yo),我会在白页上看到这行文本:
您要查找的资源已被删除、名称已更改或暂时不可用。
我在两个错误页面中都设置了断点,但它们在两个示例中都没有命中
这是我的错误页面:
public ActionResult PageNotFound()
{
Response.StatusCode = 404;
return View();
}
public ActionResult InternalServerError()
{
Response.StatusCode = 500;
return View();
}
它们在 HomeController 内部,因此是 path="/Home/...
如何做到这一点,以便在发生错误时触发(我假设 404 的解决方案与 500 的解决方案相同)。我在我的 404 和 500 页面中放了一个段落,上面写着“嗨”。这就是我知道它会起作用的方式。
我也用斜线尝试了这个解决方案,但它不起作用web.config errors fail with responseMode="File"
【问题讨论】:
标签: c# asp.net-mvc custom-error-pages