0

我有一个 ASPX (PictureGetter.aspx),它加载图像并以如下方式将它们写入响应:

private void WritePicture()
{
    byte[] bytes = GetBytes(picPath);
    Response.ContentType = "image/jpeg";
    Response.Clear();
    Response.BinaryWrite(bytes);
    Response.End();
}

然后可以在这样的页面上使用它:

<img src="/path/to/PictureGetter.aspx?some_param=some_value" />

但是,在某些情况下,我将无法获取图像,因此我想将用户重定向到完全不同的页面:

if (some_condition)
{
    Response.Redirect("/another/path/page.aspx");
}
else
{
    WritePicture();
}

但是,重定向永远不会发生。我试过 Response.Redirect("/another/path/page.aspx", false) 和 Response.Redirect("/another/path/page.aspx", true) 但无济于事。有什么想法可以解决这个问题吗?

4

1 回答 1

2

您发送重定向的请求不是针对页面,而只是针对图像。除非传入的请求是针对实际页面的,否则您将无法从服务器发送重定向。

更具体地说:如果您需要根据某些条件进行重定向,则应在请求托管图像的页面时进行。如果您真的需要按照您的布局方式进行操作(在尝试加载图像之前不知道是否需要重定向),您将不得不使用一些混乱的客户端 javascript 来完成它。

于 2009-11-20T17:10:26.427 回答