posts - 930,  comments - 588,  views - 402万
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

        我们基于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有一定了解,上面的代码并不难懂,这里也只是非常简单的一个示例。希望对您开发有帮助。

您可能感兴趣的文章:

Asp.net MVC3扩展之Ajax异常处理特性


作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog

posted on   PetterLiu  阅读(7058)  评论(2编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
历史上的今天:
2011-09-24 Asp.net使用JQuery实现放大图片效果
2010-09-24 无配置文件使用Enterprise Library Logging Application Block 4.1
点击右上角即可分享
微信分享提示