使用ASP.NET,我可以将Response.StatusCode
设置为(int)HttpStatusCode.Gone
并仍然向用户提供页面的其余内容吗?在我将StatusCode
设置为410
的那一刻,该页面的内容将被删除并替换为通用消息。
我知道ASP.NET允许我更改默认错误页面的样式,但我认为这不是我想要的;我不希望此页面的内容成为网站上所有410
错误的默认内容。
答案 0 :(得分:2)
我过去通过简单地覆盖页面的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)
{
}
}
}
答案 1 :(得分:1)
您可以设置TrySkipIisCustomErrors
以避免这些自定义错误。