我正在使用Microsoft.Web.Helpers中的Gravatar助手类,如此
<%: Gravatar.GetHtml("me@domain.com", 80, "identicon") %>
在源中生成
<img src="http://www.gravatar.com/avatar/0ff2e377be7d73b15f0b48022a755717?s=80&d=identicon" alt="gravatar" />
图片网址有效,但不应该是&d=identicon
而不是&d=identicon
吗?它似乎编码了&符号。使用Gravatar.GetUrl()
如何在不重写我自己的版本的情况下停止编码&符号?
答案 0 :(得分:3)
<%:Gravatar.GetHtml("me@domain.com", 80, "identicon") %>
你告诉它对输出进行编码,&#34;:&#34;这是一个短手。如果您不想对输出进行编码,请执行此操作
<%=Gravatar.GetHtml("me@domain.com", 80, "identicon") %>
据我所知&#34;:&#34;是通过Html.Encode()
输出的简写======修改
Helper正在做的是正确的,它应该编码&符号,更多信息在下面的链接
答案 1 :(得分:0)
在代码中(比如在控制器操作中......而不是在* .aspx或* .cshtml标记中),当我这样做时:
var avatarUrl = Gravatar.GetUrl("someone@somewhere.com", defaultImage: "identicon");
这将返回以下字符串:
http://www.gravatar.com/avatar/923d10bc97028030e8e67e7db62658d1?s=80&d=identicon
请注意编码的&符号(&amp; amp;),其中不应有任何编码。我认为这不符合预期。重要的原因是,我们得到了默认的gravatar徽标,而不是获得我们想要的identicon(或gravatar),这是我们不想要的(identicon回退的重点)。请记住,这是从控制器完成的,而不是视图标记。