ユーザーの写真を取得するために使用するアクションメソッドがありますが、一部のユーザーは 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);
}
そして、私が使用するWebページで:
<img src='@Url.Action("Picture", new {User.Id})' />
これは、ページを初めてロードしたときは完全に機能しますが、2 回目は画像が表示されません。アクションだけを呼び出すことを確認しましたが、2回目には次のページが表示されます
"Object moved to here."
img タグが画像を読み込んでいないのはそのためです。
これを防ぐ方法はありますか?(リダイレクトによって返される 302 の代わりに) 301 を返すことを推奨する他のスレッドを読みましたが、リンクを含む同じページを返します (実際のリクエストは 301 または 302 ではなく 200 を返します)。
常にリダイレクトを返すように強制する方法についてのアイデアはありますか?
どの画像をページにロードするかを選択するロジックを追加したくありません。また、サーバー上のデータを要求してからページに返したくありません。速度が遅くなり、帯域幅の問題になる可能性があるためです。 .
ご協力いただきありがとうございます。