我們基於Asp.net MVC 4 Web Application 寫一個擴展方法來呈現圖片的擴展。Gravatar是提供個人Profile信息的網站,包括圖片LOGO。你可以引用你的Profile到論壇,Blog都可以。
一開始我們寫一個Helper如下:
1: namespace MVC4Demo.Extensions
2: {
3: using System;
4: using System.Web.Mvc;
5: using System.Web.Security;
6:
7: public static class GravatarHtmlHelperExtensions
8: {
9: /// <summary>
10: /// Gets the Gravatar image URL.
11: /// </summary>
12: /// <param name="emailId">The email id.</param>
13: /// <param name="imgSize">Size of the img.</param>
14: /// <seealso cref="https://en.gravatar.com/"/>
15: /// <returns>Image MvcHtmlString</returns>
16: public static MvcHtmlString RenderGravatarImage(this HtmlHelper helper, string emailId, int imgSize)
17: {
18: if (string.IsNullOrEmpty(emailId))
19: throw new ArgumentNullException("Email Id should not be null!");
20:
21: // Convert emailID to lower-case
22: emailId = emailId.ToLower();
23:
24: string hash = FormsAuthentication.HashPasswordForStoringInConfigFile(emailId, "MD5").ToLower();
25:
26: // build Gravatar Image URL
27: string imageUrl = string.Format(@"<img src=""http://www.gravatar.com/avatar/{0}?s={1}&d=mm&r=g"" />", hash, imgSize);
28:
29: return new MvcHtmlString(imageUrl);
30: }
31: }
32: }
接在Razor的Web.config中加入相應的Namespace:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.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.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="MVC4Demo.Extensions"/>
</namespaces>
</pages>
</system.web.webPages.razor>
然后在頁面cshtml上我們可以這樣使用了:
<div class="Author" style="position:relative;">
<div style="position:absolute; top:10px;">
@Html.RenderGravatarImage(Model.AuthorEmail, 100)
</div>
如果您對Asp.net MVC 4 Web Application有一定了解,上面的代碼並不難懂,這里也只是非常簡單的一個示例。希望對您開發有幫助。
您可能感興趣的文章:
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
該文章也同時發布在我的獨立博客中-Petter Liu Blog。