C# 状态代码为404的IHTTP模块重写路径
我有一个URL,看起来像:/employeeId=3992,它显示ID为3992的员工。这很好,HTTP状态代码是200 OK 但是,当有人在URL中写入一个无效ID,例如:/employeeId=39920时,我希望我的HTTP处理程序重写错误页面的路径,并发送HTTP状态代码404 以下是我使用的代码:C# 状态代码为404的IHTTP模块重写路径,c#,asp.net,iis-7,httpmodule,ihttpmodule,C#,Asp.net,Iis 7,Httpmodule,Ihttpmodule,我有一个URL,看起来像:/employeeId=3992,它显示ID为3992的员工。这很好,HTTP状态代码是200 OK 但是,当有人在URL中写入一个无效ID,例如:/employeeId=39920时,我希望我的HTTP处理程序重写错误页面的路径,并发送HTTP状态代码404 以下是我使用的代码: if (employee == null) { context.RewritePath("/error-page"); context.Response.StatusCode
if (employee == null)
{
context.RewritePath("/error-page");
context.Response.StatusCode = 404; // if I remove this line, the error-page is displayed, and the StatusCode is 200.
}
当我将HTTP状态代码设置为404时,页面将显示此标准ASP.NET 404错误页面
也可以调用
context.Response.TrySkipIisCustomErrors = true;
例如:
看看这篇文章,它似乎涵盖了你想要实现的目标
if (employee == null)
{
context.Response.TrySkipIisCustomErrors = true;
context.RewritePath("/error-page");
context.Response.StatusCode = 404;
}