我有一个用于检索用户图片的操作方法,但是我的一些用户可能已经使用 Facebook 登录,我不想返回存储的图片而是来自 Facebook 的图片,所以我正在尝试这样的事情:
public ActionResult Picture(long id)
{
var user = UsersService.GetUser(id);
if (user.IsConnectedWithFacebook)
{
var url = "http://graph.facebook.com/" + user.GetFacebookId() + "/picture?type=square";
return Redirect(url);
}
return File(user.PictureData, user.PictureContentType);
}
在我刚刚使用的网页上:
<img src='@Url.Action("Picture", new {User.Id})' />
这在我第一次加载页面时非常有效,但是第二次没有显示图像。我检查了是否只调用了该操作,第二次它显示了一个页面
"Object moved to here."
这就是 img 标签不加载任何图像的原因。
有没有办法防止这种情况发生?我在其他一些线程中读到人们建议返回 301(而不是 Redirect 返回的 302),但它返回与链接相同的页面(并且实际请求返回 200 而不是 301 或 302)。
关于如何强制它始终返回重定向的任何想法?
我真的不想添加逻辑来选择要加载到页面的图像,我也不想请求服务器上的数据然后将其返回到页面,因为它可能会很慢并成为带宽问题.
谢谢你的帮助。