zoukankan      html  css  js  c++  java
  • Asp.net MVC4与Razor呈现图片的扩展

            我们基于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

  • 相关阅读:
    欧拉定理证明&阶乘的逆元
    Tree POJ
    GCD
    java42
    java41
    java
    java40
    搭建两个网站的琐碎问题
    虚拟机从无到有,服务器从无到有的历程(在更)
    java39
  • 原文地址:https://www.cnblogs.com/wintersun/p/2699811.html
Copyright © 2011-2022 走看看