Facebook喜欢按钮iframe与动态url打印在asp.net razor模板



我在umbraco cms中有一个asp.net网站,在那里我可以使用razor模板创建一些宏。我想在页面中集成一个facebook的like按钮,只有当我将整个iframe粘贴到razor宏中并将宏合并到我的主页上时,这才有效。

但是,如果我想包含一些参数,我将iframe URL从代码片段中取出,并在该URL中粘贴另一个参数它停止工作。

然而,渲染后的iframe url是100%相同的。

任何人都有一个想法,我如何才能确保正确的网站网址是在Facebook的iframe参数可以改变?(取决于我在umbraco cms中绑定的主机名)

这是我的剃刀代码不工作:

@{
  var currentLangPath = "www.newurl.com"; 
  var iframeSource = "http://www.facebook.com/plugins/like.php?app_id=207125959336150&href=" + currentLangPath + "&send=false&layout=button_count&width=110&show_faces=false&action=like&colorscheme=dark&font=arial&height=21";      
  }
<a href="#visitFanpage"><img src="/images/facebook_logo.jpg" alt="Solex Facebook" /></a>
<p>Become part of the community, and feel free to share your experience.</p>
<div class="social">
  <iframe src="@iframeSource" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:110px; height:25px;" allowTransparency="true"></iframe>
</div>

下面是一个Razor文件的内容:

<a href="#visitFanpage"><img src="/images/facebook_logo.jpg" alt="Solex Facebook" /></a>
<p>Become part of the community, and feel free to share your experience.</p>
<div class="social">
  <iframe src="http://www.facebook.com/plugins/like.php?app_id=207125959336150&amp;href=www.newurl.com&amp;send=false&amp;layout=button_count&amp;width=110&amp;show_faces=false&amp;action=like&amp;colorscheme=dark&amp;font=arial&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:110px; height:25px;" allowTransparency="true"></iframe>
</div>

注意,这两个Razor文件有完全相同的输出,所以我发现动态URL不工作是非常奇怪的。

输出实际上是不一样的,iframeSource变量得到HTML编码,因此"&"变成:

&amp;amp;

你可以做两件事:

  1. 删除iframeSource中每个&后面的amp;
  2. 用@Html.Raw(iframeSource)代替@iframeSource

最新更新