.net 返回HttpNot Found不重定向到自定义错误页面

kulphzqa  于 2023-05-02  发布在  .NET
关注(0)|答案(2)|浏览(165)

我创建了一个ASP MVC Web应用程序。我为Error 404表单添加了一个自定义错误页面。Web配置中的自定义错误部分看起来像这样:

<customErrors mode="On">
  <error statusCode="404" redirect="/errors/Error404" />
</customErrors>

我有一个返回HttpNotFound结果的控制器

return HttpNotFound();

问题是它显示的是默认的错误404页面,而不是我的自定义页面。

2ic8powd

2ic8powd1#

正如我在上面的评论中提到的,因为是控制器返回HttpNotFound,所以它不会被拦截和处理。浏览器收到的状态代码404作为您的控制器的结果,然后浏览器显示它自己的默认页面为404错误
尝试拨打:控制器操作中的throw new HttpException(404, "Not found")而不是HttpNotFound

pkbketx9

pkbketx92#

您可以抛出HttpException消息或重定向到相应的错误页面,而不是HttpNotFound()

throw new HttpException(404, "Not found");

return RedirectToAction("NotFound","Error");

最好使用return语句,就像有一个全局try-catch一样,第一个语句不会显示错误页面。

相关问题