4

使用 ASP.NET,我可以设置Response.StatusCode(int)HttpStatusCode.Gone仍然为用户提供页面的其余内容吗?似乎在我将 设置StatusCode为 a的那一刻410,页面的内容被删除并替换为通用消息。

我知道 ASP.NET 允许我更改默认错误页面的样式,但我认为这不是我想要的。我不希望此页面的内容成为410网站上所有错误的默认值。

4

2 回答 2

3

我过去通过简单地覆盖页面的 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)
        {
        }
    }
}
于 2013-09-30T00:35:44.263 回答
1

您可以设置TrySkipIisCustomErrors以避免这些自定义错误。

于 2013-09-29T16:48:09.683 回答