Hoe to return image in asp.net mvc?

Total Post:104

 1445  View(s)
Rate this:

Can I create a Controller that simply returns an image asset?

I would like to route this logic through a controller, whenever a url such as the following is requested:


The controller will look up topbanner.png and send that image directly back to the client.

I've seen examples of this where you have to create a View - I don't want to use a View. I want to do it all with just the Controller.

Is this possible?

  1. Post:159

    Re: Hoe to return image in asp.net mvc?

    Use the base controllers File method.

    public ActionResult Image(string id)
        var dir = Server.MapPath("/Images");
        var path = Path.Combine(dir, id + ".jpg");
        return base.File(path, "image/jpeg");

    As a note, this seems to be fairly efficient. I did a test where I requested the image through the controller (http://localhost/MyController/Image/MyImage) and through the direct url (http://localhost/Images/MyImage.jpg) and the results were:

    • MVC: 7.6 milliseconds per photo
    • Direct: 6.7 milliseconds per photo

    Note: this is the average time of a request. The average was calculated by making thousands of requests on the local machine so the totals should not include network latency or bandwidth issues.

      Modified On Apr-06-2018 06:52:14 AM


Please check, If you want to make this post sponsored

You are not a Sponsored Member. Click Here to Subscribe the Membership.