Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is Html.Image in ASP .NET MVC RC?

Tags:

asp.net-mvc

I can't find the Html.Image method in new MVC RC version. Please somebody give me example how to render simple Image in ASP .NET MVC RC sites.

like image 582
Dariusz Avatar asked Feb 03 '09 23:02

Dariusz


People also ask

Where are images stored in ASP NET MVC?

Images are stored in /Content/Images.

How can save image in folder in ASP NET MVC?

string filePath = "~/Uploads/" + fileName; //Save the Image File in Folder. postedFile. SaveAs(Server.


2 Answers

Need to write your own or use the Url.Content() method to set the source attribute. Or you can use mine. :-)

public static class HtmlHelperExtensions
{

    public static string Image( this HtmlHelper helper, 
                                string url,
                                string altText,
                                object htmlAttributes )
    {
        TagBuilder builder = new TagBuilder( "img" );
        builder.Attributes.Add( "src", url );
        builder.Attributes.Add( "alt", altText );
        builder.MergeAttributes( new RouteValueDictionary( htmlAttributes ) );
        return builder.ToString( TagRenderMode.SelfClosing );
    }
}

Usage:

<%= Html.Image( Url.Content( "~/Content/images/img.png" ),
               "alt text",
               new { id = "myImage", border = "0" } )
 %>

EDIT: Since I wrote this I've gone away from using it. I'll leave the answer here, though for posterity. While I think it, or the method from the Future assembly, is a reasonable choice, I find myself simply using the image tag with the url supplied by a UrlHelper. When I refactored my helpers into a standalone library, this one didn't make the cut. I'll re-evaluate if it makes it into the (non-futures) MVC library.

<img src="<%= Url.Content( "~/content/..." ) %>"
     alt="alt text"
     class="has-border" />
like image 171
tvanfosson Avatar answered Nov 16 '22 04:11

tvanfosson


What's wrong with pure HTML?

<img src="" alt="" />

You could use the ViewData collection or model to populate the src attribute:

<img src="<%= ViewData["ImageSource"] %>" alt="" />

<img src="<%= ViewData.Model.ImageSource %>" alt="" />

Edit:

Regarding using relative urls (i.e. using the "~" character) in the path, change the above code to use ResolveUrl. For example:

<img src="<%= ResolveUrl(ViewData.Model.ImageSource) %>" alt="" />
like image 44
Kevin Pang Avatar answered Nov 16 '22 02:11

Kevin Pang