I am trying to replace an Image in my View by a click. My controller returns an byte Array but the View replaces the original image with an empty one.
Here is my Controller code:
[HttpPost]
public byte[] GetSelectedImage(string selectedImageId, string accountId, string courseId)
{
// Laden des Originalfotos
var pictures = (from ga in _db.MyPhotos
where
ga.AccountId.Equals(accountId) &&
ga.CourseId.Equals(courseId) &&
ga.SortOrder.Equals(selectedImageId)
select ga.PhotoStreamOriginal.ToArray());
var images = pictures.ToList();
byte[] imageByteArray = images.First();
return imageByteArray;
}
And hier is what I am doing in my Javascript:
$('#makeMeScrollable img').live('click touchstart', function (event) {
event.preventDefault();
var selectedImage = $(this).attr('data-id');
var selectedImageId = @Html.Raw(Json.Encode(Model.SelectedImageId));
var accountId = @Html.Raw(Json.Encode(Model.AccountId));
var courseId = @Html.Raw(Json.Encode(Model.CourseId));
$.ajax({
url: '@Url.Action("GetSelectedImage", "UploadPhoto")',
dataType: 'text',
data: {selectedImageId: selectedImageId, accountId: accountId, courseId: courseId},
type: 'POST',
success: function(data) {
$('#OriginalImage').attr('src', "data:image/jpg;base64," + data);
alert("data:image/jpg;base64," + data);
}
});
});
The alert also shot only, data:image/jpg;base64,System.Byte[]
Any idea what I am doing wrong?
Thanks for you help