我可以返回 HTTP 410 GONE 并仍然提供页面内容吗?
本文关键字:HTTP 返回 GONE 我可以 | 更新日期: 2023-09-27 18:33:10
使用 ASP.NET,我可以将Response.StatusCode
设置为(int)HttpStatusCode.Gone
并仍然向用户提供页面的其余内容吗?似乎当我将StatusCode
设置为410
时,页面的内容被删除并替换为通用消息。
我知道 ASP.NET 允许我更改默认错误页面的样式,但我认为在这种情况下这不是我想要的;我不希望此页面的内容成为网站上所有410
错误的默认内容。
我过去通过简单地覆盖页面的 OnInit 方法并强制它返回所需的 HTTP 状态代码来实现这一点。在创建自定义错误页面时,我必须使用此技术,以确保返回正确的 HTTP 状态代码。
using System;
using System.Web.UI;
namespace Website
{
public partial class _410 : Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Response.Buffer = true;
Response.StatusCode = 410;
Response.Status = "410 Gone";
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
您可以设置TrySkipIisCustomErrors
以避免这些自定义错误。