我做了一个包含 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" />
而不是用户输入的内容。
解决方法是显示用户在文本字符串框中插入的内容。
一切都必须在 Razor 中完成
最佳答案
我会创建一个“YoutubeVideo”宏及其 Razor 脚本“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 结合使用,则此方法可能会有所不同,否则这应该可以解决问题。
关于c# - 如何将 Umbraco 项目插入 cshtml 文件中的 url,razor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15791636/