GeekZilla
Rendering a Gravatar image with Razor and C# MVC4
I wanted to write a Helper Extension for Razor which rendered a Gravatar image .. see below:
<div class="Author" style="position:relative;"> <div style="position:absolute; top:10px;"> @Html.RenderGravatarImage(Model.AuthorEmail, 100) </div> </div>
The code for the Helper Extension
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Html; using System.Web.Security; namespace GeekZillaMVC3.Helpers { public static class GeekZillaHtmlHelperExtensions { /// <summary> /// Gets the gravatar image URL. /// </summary> /// <param name="emailId">The email id.</param> /// <param name="imgSize">Size of the img.</param> /// <returns></returns> public static MvcHtmlString RenderGravatarImage(this HtmlHelper helper, string emailId, int imgSize) { // Convert emailID to lower-case emailId = emailId.ToLower(); var hash = FormsAuthentication.HashPasswordForStoringInConfigFile(emailId, "MD5").ToLower(); // build Gravatar Image URL var imageUrl = string.Format(@"<img src=""http://www.gravatar.com/avatar/{0}?s={1}&d=mm&r=g"" />", hash, imgSize); return new MvcHtmlString(imageUrl); } } }
The web.config entry
You need to register your namespace in the web.config in the Views folder see GeekZillaMVC3.Helpers below:
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> <add namespace="GeekZillaMVC3.Helpers" /> </namespaces> </pages> </system.web.webPages.razor>
Author Paul Hayman
Paul is the COO of kwiboo ltd and has more than 20 years IT consultancy experience. He has consulted for a number of blue chip companies and has been exposed to the folowing sectors: Utilities, Telecommunications, Insurance, Media, Investment Banking, Leisure, Legal, CRM, Pharmaceuticals, Interactive Gaming, Mobile Communications, Online Services.
Paul is the COO and co-founder of kwiboo (http://www.kwiboo.com/) and is also the creator of GeekZilla.
Add Comment
Tag Cloud
ajax
asp.net
atlas
authentication
Beta
c#
clr
CSS
dataset
datetime
dojo
dts
email
encryption
enum
event validation
excel
favicon
filesystem
fileupload
flash
fofo
form
full text search
fulltext
Gadget
gaming
gdi
GET
Globalization
javascript
navigation
PaulMarshall
POST
regex
security
seo
sitemap
sql
stored procedure
Strongly Typed Dataset
test
thanks
tips
url
utorrent
validation
vb
vb.net
Vista
VM
VMWare
vs2005
web2
webservice
windows forms
WSS
xml
xna
