2

I use ShowImage() method of the Home controller to show the image generated on fly.

HTML

<img src='@Url.Action("ShowImage", "Home" )' width="267" height="500">

Now I would like to execute some action with AJAX and update that image like this

 $.ajax({
     type: "POST",
     url: '@Url.Action("UpdateUser", "Home")',
     contentType: "application/json; charset=utf-8",
     data: JSON.stringify(params),
     dataType: "json",
     success: function (data) {
         if (data.success.toString() == 'true') {

             // Is it possible update image using JavaScript?


         }
     }
 });

Is it possible to do? Thanks!

6
  • 1
    Yes just change src attribute $("#myimage").attr("src", yourReponse") Commented Jul 3, 2014 at 11:52
  • what is returned by ajax call? Commented Jul 3, 2014 at 11:52
  • I assume, that your link to image isn't changing, is it? Check this link for help: stackoverflow.com/questions/2104949/… Commented Jul 3, 2014 at 11:53
  • @EhsanSajjad In fact I can return byte[] of image as well. But I dont know if it will help somehow... Commented Jul 3, 2014 at 11:53
  • 1
    also @ClarkKent show the ajax call response what is returned from server Commented Jul 3, 2014 at 11:54

3 Answers 3

3

Your controller can return an Image with the base File method:

public ActionResult Image(string id)
{
     var myStream = new byte[0];
     // your code géneration....
     return File(myStream, "image/jpeg");
}

Than, you change the image src attribute:

$("#image").attr("src", "/MyController/Image/2");
Sign up to request clarification or add additional context in comments.

2 Comments

This is the complete answer, but I already commented once below your question ;)
I am confused on how this is the accepted answer as the OP was asking for help using AJAX to change image. This seems to only show how to load image with page load, how do you refresh with AJAX and JSON?
3

Add an id to your image:

<img id="anImage" src='@Url.Action("ShowImage", "Home" )' width="267" height="500">

Then in your success handler set it as follows:

$('#anImage').attr("src", 'success.png');

If your image is returned as json from your controller, pull it from the data instead:

$('#anImage').attr("src", data.image);

Comments

0

Try this for pure javascript

document.getElementById("id of ur img").src="your source goes here";

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.