Umbraco音频插入宏

时间:2015-02-18 12:31:49

标签: umbraco umbraco7

我有一些来自umbraco的旧版本(版本6)的代码,允许用户选择音频文件,然后使用宏将html 5音频播放器插入页面。我已将其复制到版本7但它不起作用。我一直收到这个错误:

加载部分视图脚本时出错(文件:〜/ Views / MacroPartials / InsertAudio.cshtml)

代码:

@inherits umbraco.MacroEngines.DynamicNodeContext

@{
                var controls = Parameter.controls;
                var mp3Url = Library.NodeById(Parameter.mp3).Url;
                string controlsTog = "";

if (controls == "1"){
                controlsTog = "controls";
}

<audio @controlsTog> 
                <source src="@mp3Url" type="audio/mpeg" /> 
Your browser does not support the audio tag. 
</audio>

}

1 个答案:

答案 0 :(得分:0)

您必须将旧版剃刀宏转换为部分视图宏。以下是有关如何执行转换的基本指南: https://our.umbraco.org/documentation/reference/templating/macros/Partial-View-Macros/

我已对您的脚本文件进行了必要的更改,但这是未经测试的。我还假设您的MP3是媒体部分中的项目,因此如果这不正确,您可能需要将Umbraco.TypedMedia替换为Umbraco.TypedContent

@inherits Umbraco.Web.Macros.PartialViewMacroPage

@{
    var mp3Id = Model.MacroParameters["mp3"].ToString();
    var mp3 = Umbraco.TypedMedia(mp3Id);
    var mp3Url = mp3 != null ? mp3.Url : string.Empty;
    var controlsTog = string.Empty;
    if (string.Equals(Model.MacroParameters["controls"].ToString(), "1"))
    {
        controlsTog = "controls";
    }
}

@if (!string.IsNullOrEmpty(mp3Url))
{
    <audio @controlsTog>
        <source src="@mp3Url" type="audio/mpeg" />
        Your browser does not support the audio tag.
    </audio>
}