我正在尝试创建一个pinterest pin it按钮。 以下是代码:
<a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.domain.name%2Fproduct%2F@Model.ProductDetails.URLName&media=http%3A%2F%2Fwww.domain.name%2Fproduct%2F@Model.ProductDetails.Image&description=@Model.ProductDetails.ProductDescription" class="pin-it-button" count-layout="horizontal"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a>
<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
如您所见,有三个变量:
url : http%3A%2F%2Fwww.domain.name%2Fproduct%2F@Model.ProductDetails.URLName
media: http%3A%2F%2Fwww.domain.name%2Fproduct%2F@Model.ProductDetails.Image
description: @Model.ProductDetails.ProductDescription
在所有三个变量中,一些数据来自ViewModel,使用@Model
但只有@Model.ProductDetails.ProductDescription
正在运作
而另外两个不起作用可能是因为它们是更大字符串的一部分。
答案 0 :(得分:2)
剃刀解析器认为前两个值是电子邮件地址或类似的,因此将它们保留为纯文本。为了通知解析器它们应该被评估,你需要使用显式表达式,例如@(Model.Property)
,所以你的变量将是:
url : http%3A%2F%2Fwww.domain.name%2Fproduct%2F@(Model.ProductDetails.URLName)
media: http%3A%2F%2Fwww.domain.name%2Fproduct%2F@(Model.ProductDetails.Image)
description: @(Model.ProductDetails.ProductDescription)
你的片段就是:
<a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.domain.name%2Fproduct%2F@(Model.ProductDetails.URLName)&media=http%3A%2F%2Fwww.domain.name%2Fproduct%2F@(Model.ProductDetails.Image)&description=@(Model.ProductDetails.ProductDescription)" class="pin-it-button" count-layout="horizontal"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a>
<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
我通常会将Phil Haack's Razor Quick Reference指南加入书签!