我有产品的详细信息页面。该产品是通过查询字符串中的 id 获取的,如果在数据库中找到具有该 id 的产品,我们将显示详细信息,否则我们将显示“无法找到该项目”消息。很标准的东西。我想做的是在详细信息页面上显示“找不到此项目”消息,但发送 404 响应。这样 Google 将取消对已删除项目的索引。
所以我有这样的东西(简化):
<asp:Panel ID="pnlDetails" runat="server" Visible="false">
item details go here
</asp:Panel>
<asp:Panel ID="pnlError" runat="server" Visible="false">
<p>The specified item could not be found.</p>
</asp:Panel>
And in the code behind:
if(itemFound)
{
showDetails();
}
else
{
showError();
}
private void showDetails()
{
pnlDetails.Visible = true;
//fill in details
}
private void showError()
{
//set response
Response.StatusCode = 404;
pnlError.Visible = true;
}
现在发生的事情是我看到了错误面板,但我仍然收到 200 响应。谁能告诉我我做错了什么?任何建议将不胜感激,非常感谢!
编辑:我在Page_Load
事件处理程序中调用这些方法。