3

我正在尝试创建一个 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

在所有三个变量中,一些数据来自使用 @Model 的 ViewModel

但只有@Model.ProductDetails.ProductDescription在工作而其他两个没有工作可能是因为它们是更大字符串的一部分。

4

1 回答 1

2

razor 解析器认为前两个值是电子邮件地址或类似地址,因此将它们保留为纯文本。为了通知解析器应该评估它们,您需要使用显式表达式,例如@(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 的 Razor 快速参考指南添加为书签!

于 2012-06-27T15:58:23.613 回答