使用 ASP.NET,我可以设置Response.StatusCode
并(int)HttpStatusCode.Gone
仍然为用户提供页面的其余内容吗?似乎在我将 设置StatusCode
为 a的那一刻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
以避免这些自定义错误。