我有一个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),但无济于事。我有什么想法可以解决这个问题吗?
答案 0 :(得分:2)
您发送重定向的请求不是针对该页面,而是针对该图像。除非进入的请求是针对实际页面的,否则您将无法从服务器发送重定向。
更具体一点:如果您需要根据某些条件进行重定向,则应在请求托管图像的页面时执行此操作。如果你真的需要按照你的方式进行(不知道你是否需要重定向,直到尝试图像加载),你将不得不使用一些凌乱的客户端javascript。