Tutorialsteacher

关注我们

文章
  • C#
  • C# 面向对象编程
  • ASP.NET Core
  • ASP.NET MVC
  • LINQ
  • 控制反转 (IoC)
  • Web API
  • JavaScript
  • TypeScript
  • jQuery
  • Angular 11
  • Node.js
  • D3.js
  • Sass
  • Python
  • Go lang
  • HTTPS (SSL)
  • 正则表达式
  • SQL
  • SQL Server
  • PostgreSQL
  • MongoDB
Entity Framework Extensions - 提升 EF Core 9
  批量插入
  批量删除
  批量更新
  批量合并
  • 全部
  • C#
  • MVC
  • Web API
  • Azure
  • IIS
  • JavaScript
  • Angular
  • Node.js
  • Java
  • Python
  • SQL Server
  • SEO
  • 创业
  • 效率

如何在 ASP.NET MVC 中显示自定义错误页面并返回错误代码

您可以使用 web.config 中的 <customErrors> 在 MVC 应用程序中发生异常时显示自定义页面,并返回状态码 200。

出于 SEO 原因,您可能希望在 ASP.NET Webform 或 MVC 应用程序中显示自定义错误页面并返回适当的错误代码。

<customErrors> 部分仅用于处理 ASP.NET 应用程序级别的异常。用户和应用程序之间有一个 IIS Web 服务器。

web.config 中 <system.webServer> 下的 httpErrors 元素用于配置 IIS 级别的错误 (IIS 7+)。它会覆盖 <customErrors> 部分的配置。

要显示带适当错误代码的自定义错误页面,请仅使用 <httpErrors> 部分,不要使用 <customErrors> 部分。

在 <system.webServer> 部分下添加以下 <httpErrors> 部分,如下所示。

示例:httpErrors 配置
<httpErrors errorMode="Custom" existingResponse="Replace"  >
    <remove statusCode="500"/>
    <error statusCode="500" path="500.html" responseMode="File"/>
    <remove statusCode="404"/>
    <error statusCode="404" path="404.html" responseMode="File"/>
    <remove statusCode="400"/>
    <error statusCode="400" path="400.html" responseMode="File"/>
</httpErrors>

上述 <httpErrors> 将替换来自 ASP.NET 的响应,匹配状态码并返回自定义 HTML 文件作为响应。这将保留 URL 并返回带适当错误代码的自定义错误页面。

为了使上述配置生效,请在应用程序根目录创建 500.html、404.html、400.html。以下是 404.html 文件。

示例:404.html
<!DOCTYPE html>
<html>
<body>
    <h1>Page not found.</h1>
</body>
</html>

现在,导航到应用程序中不存在的页面,您将看到以下响应。

Custom Error Page with Error Code

让我们了解上述 <httpErrors> 设置。

errorMode 属性可以有三个值:DetailedLocalOnly、Detailed 和 Custom。我们想在 localhost 上测试它,所以使用了 Custom 模式。通常,您应该使用 DetailedLocalOnly,它会在 localhost 上显示错误信息,但远程显示自定义错误页面。

existingResponse 属性可以有三个值:Auto、Replace 和 PassThrough。由于我们要返回带错误代码的自定义错误页面,因此必须替换来自 ASP.NET 应用程序的错误响应。因此,使用 existingResponse="Replace"。

<remove statusCode="500" /> 从您的站点或应用程序从 IIS 配置层次结构中的更高级别继承的错误消息集合中删除特定的错误消息。

<error statusCode="500" path="500.html" responseMode="File" /> 配置 500 错误代码。path 属性定义要返回的自定义错误页面的路径。responseMode 属性指定 IIS 是在响应错误时提供静态内容、动态内容还是重定向到单独的 URL。

上述 <httpErrors> 元素配置了三个状态码:500、404 和 400。它将分别为状态码 500、404 和 400 返回自定义页面 500.html、404.html 和 400.html。

请注意,您必须在应用程序的根文件夹中创建这些 HTML 文件。

通过这种方式,您可以在 ASP.NET Webform 或 MVC 应用程序中向用户返回带适当状态码的自定义错误页面。

在此处了解有关 httpErrors 的更多信息:此处。

TUTORIALSTEACHER.COM

TutorialsTeacher.com 是您权威的技术教程来源,旨在通过循序渐进的方法,指导您掌握各种网络和其他技术。

我们的内容旨在帮助所有级别的学习者轻松快速地学习技术。访问此平台即表示您已阅读并同意遵守我们的使用条款和隐私政策,这些条款和政策旨在保护您的体验和隐私权。

[email protected]

关于我们使用条款隐私政策
copywrite-symbol

2024 TutorialsTeacher.com. (v 1.2) 版权所有。