这已经让我抓狂了3个小时了。我们从Umbraco 4升级到Umbraco 7,现在我们的网站菜单坏了。我们过去使用脚本遍历节点并创建CSS菜单系统。
所以我已经开始阅读新的东西,我只是不能得到一个@helper或@functions块的工作。脚本现在使用一个PartialView宏,该宏使用一个名为MenuNode的参数,该参数是我想要向下遍历的节点。
下面是有效的代码:
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var menuNode1 = string.IsNullOrEmpty((string)Model.MacroParameters["MenuNode"])? 0 : Convert.ToInt32(Model.MacroParameters["MenuNode"]);
}
<h1>@menuNode1</h1>
只要我尝试添加@helper或@functions,就像在Umbraco中提供的Navigation PartialView示例中一样,它就会停止工作。下面是打破它的原因。
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var menuNode1 = string.IsNullOrEmpty((string)Model.MacroParameters["MenuNode"])? 0 : Convert.ToInt32(Model.MacroParameters["MenuNode"]);
}
@TestHelper(menuNode1)
@helper TestHelper(var testvalue)
{
<h1>@testvalue</h1>
}
谁能指出我做错了什么吗? 问题解决。这是因为我在@helper参数列表中使用var,更改为动态,它工作得很好。