Controller, um ein Bild zu erhalten:
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;
}
}
und eine Aussicht:
<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>
im Ergebnis sehe ich kein Bild auf der Seite, aber ich habe das gleiche Ergebnis in FireBug:
<div id="picsSmall" style="display: block;">
<img src="JFIF`` ...... d:1g" alt="some text">
</div>
Ich habe zwei Fragen:
- Ich möchte das Bild korrekt anzeigen. Können Sie mir sagen, was hier falsch ist? Ich bin nicht gut in mvc.
- Ich habe zwei gleiche Bilder, das erste ist klein und das zweite groß. Ich möchte das große Bild anzeigen, wenn der Benutzer auf das kleine Bild klickt. Was ist der beste Weg, es zu implementieren?
Wenn ich richtig verstehe, wenn Bild auf der Client-Seite geladen wird, muss ich es in ViewBag speichern. Wenn es richtig ist, was ist der beste Weg, kleine und große Bilder zu synchronisieren (sollte ich Array oder Objekt auf der Client-Seite verwenden)? Gibt es noch andere Möglichkeiten? Sorry, es sieht komplexer aus als ich erwartet habe.