1

我做了一个包含 youtube 链接的 If 语句。

在 umbraco 中,我有一个文本字符串框,允许用户插入 youtube 视频的 ID。

<div class="module m-video">
    <div class="regular">
        <div class="graphics video-container">
        <iframe width="100%" src="http://www.youtube.com/embed/<umbraco:Item field="youtubeId" runat="server" />?rel=0" frameborder="0" allowfullscreen></iframe>
    </div>
    </div>
</div>

但是当页面加载时,它会显示<umbraco:Item field="youtubeId" runat="server" />而不是用户输入的内容。

解决方法是显示用户在文本字符串框中插入的内容。

一切都必须用剃刀完成

4

2 回答 2

4

我将创建一个“YoutubeVideo”宏以及它的剃刀脚本“YoutubeVideo.cshtml”。该 cshtml 代码如下所示:

@using umbraco.MacroEngines
@inherits umbraco.MacroEngines.DynamicNodeContext

<div class="module m-video">
    <div class="regular">
        <div class="graphics video-container">
            <iframe width="100%" src="http://www.youtube.com/embed/@Model.youtubeId?rel=0" frameborder="0" allowfullscreen></iframe>
        </div>
    </div>
</div>

然后在您的 .master 中,您可以像这样包含该 mascroscript:

<umbraco:Macro ID="Macro1" Alias="YoutubeVideo" runat="server" />

如果您将 Umbraco 6+ 与 MVC 一起使用,这种方法可能会有所不同,但否则这应该可以解决问题。

于 2013-04-03T15:33:55.447 回答
0

如果您在 umbraco 模板编辑器中执行此操作,您应该能够src用单引号交换表示属性的双引号,并且 umbraco 项不需要更改。

<iframe width="100%" src='http://www.youtube.com/embed/<umbraco:Item field="youtubeId" runat="server" />?rel=0' frameborder="0" allowfullscreen></iframe>
于 2013-04-03T16:16:12.157 回答