Umbraco音频插入宏

Umbraco音频插入宏,umbraco,umbraco7,Umbraco,Umbraco7,我有一些来自较旧版本(版本6)umbraco的代码,允许用户选择音频文件,然后使用宏将html 5音频播放器插入页面。我已经把它复制到了第7版,但它不起作用。我不断地发现这个错误: 加载部分视图脚本时出错(文件:~/Views/MacroPartials/InsertAudio.cshtml) 代码: @inherits umbraco.MacroEngines.DynamicNodeContext @{ var controls = Parameter.con

我有一些来自较旧版本(版本6)umbraco的代码,允许用户选择音频文件,然后使用宏将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>

}
@继承umbraco.MacroEngines.dynamicontext
@{
var控制=参数控制;
var mp3Url=Library.NodeById(Parameter.mp3).Url;
字符串控制stog=“”;
如果(控件==“1”){
controlsTog=“控制”;
}
您的浏览器不支持音频标记。
}

您必须将传统razor宏转换为局部视图宏。以下是有关如何执行转换的基本指南:

我已对您的脚本文件进行了必要的更改,但这未经测试。我还假设您的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>
}
@继承Umbraco.Web.Macros.PartialViewMacroPage
@{
var mp3Id=Model.MacroParameters[“mp3”].ToString();
变量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=“控制”;
}
}
@如果(!string.IsNullOrEmpty(mp3Url))
{
您的浏览器不支持音频标记。
}

我尝试了您建议的两种方法,并一直得到相同的结果error@Jess-有什么想法吗?我刚刚在本地测试过,它对我有效。宏参数别名是否正好出现在脚本中?在我的例子中,我有两个参数,一个是True/False类型,别名为“controls”,另一个是Single Media Picker类型,别名为“mp3”(全小写)。如果别名不正确,则会出现“加载局部视图时出错…”错误。