我像这样使用来自Microsoft.Web.Helpers的Gravatar helper类
<%: 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()时也是一样的
我怎样才能在不重写我自己的版本的情况下停止它对&符号的编码呢?
发布于 2010-11-22 17:26:25
<%:Gravatar.GetHtml("me@domain.com", 80, "identicon") %>您告诉它对输出进行编码,":“是对此的速记。如果不想对输出进行编码,请执行以下操作
<%=Gravatar.GetHtml("me@domain.com", 80, "identicon") %>据我所知,":“是通过Html.Encode()输出的缩写。
=========Edit
帮助器正在做的是正确的,它应该是编码的与符号,更多信息在下面的链接
发布于 2010-12-07 05:45:51
在代码中(比如在控制器操作中...而不是在*.aspx或*.cshtml标记中),当我这样做时:
var avatarUrl = Gravatar.GetUrl("someone@somewhere.com", defaultImage: "identicon");这将返回以下字符串:
http://www.gravatar.com/avatar/923d10bc97028030e8e67e7db62658d1?s=80&d=identicon注意编码的与号(&),其中不应该有任何编码。我认为这并没有像预期的那样工作。之所以重要,是因为我们得到的不是我们想要的identicon (或gravatar),而是我们不想要的默认gravatar标志( identicon回退的全部要点)。请记住,这是从控制器完成的,除了视图标记。
https://stackoverflow.com/questions/4243935
复制相似问题