画像を取得するコントローラー:
public class PicturesSmallController : Controller
{
public ActionResult Details(int id)
{
PictureSmallManager m = new PictureSmallManager();
PictureSmall p = m.Load(id);
ImageFormat imageFormat = ImageHelper.ConvertToImageFormat(p.ContentType);
return p.Trunk != null ? File(p.Trunk, p.ContentType) : null;
}
}
とビュー:
<script type="text/javascript">
$(document).ready(function () {
var picsSmall = $('#picturesSmall');
picsSmall.toggle();
var url = '@Url.Action("Details", "PicsSmall")';
var ai = {
id: 69
};
$.ajax({
type: "POST",
url: url,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(ai),
success: function (returndata) {
picsSmall.append($('<img/>', {
src: returndata,
alt: 'some text'
}));
select.show('slow');
}
}
);
});
</script>
<div id="picturesSmall"></div>
<div id="picturesBig"></div>
その結果、ページに画像は表示されませんが、FireBug で同じ結果が得られました。
<div id="picsSmall" style="display: block;">
<img src="�����JFIF��`�`���� ...... �d��:1�g�" alt="some text">
</div>
2 つの質問があります。
- 画像を正しく表示したい。ここで何が問題なのか教えていただけますか? 私はmvcが苦手です。
- 私は2つの同じ画像を持っています。最初の画像は小さく、2番目の画像は大きいです。ユーザーが小さな画像をクリックしたときに大きな画像を表示したいと思います。それを実装する最良の方法は何ですか?
画像がクライアント側に読み込まれるタイミングを正しく理解している場合は、ViewBag に保存する必要があります。それが正しければ、小さい画像と大きい画像を同期する最良の方法は何ですか (クライアント側で配列またはオブジェクトを使用する必要があります)? 他の方法はありますか?申し訳ありませんが、予想よりも複雑に見えます。