我使用Razor Generator创建了一个模板。现在我需要在递归函数中创建一个嵌套的项目列表。我尝试了this solution,但后来我的所有代码都被标记为错误。
@* Generator: Template *@
@functions
{
public IList<Models.Category> Topics
{
get;
set;
}
}
@helper ShowTree(IList<Models.Category> topics)
{
<ul>
@foreach (var topic in topics)
{
<li>
@topic.Title
@if (topic.Childs.Count > 0)
{
@{
ShowTree(topic.Childs);
}
}
</li>
}
</ul>
}
添加帮助后我得到的一些无关错误:
-Error 3 Invalid expression term ';'
Error 4 Feature 'lambda expression' cannot be used because it is not part of the ISO-2 C# language specification
Error 13 Feature 'implicitly typed local variable' cannot be used because it is not part of the System C# language specification
Error 6 The name 'WriteLiteralTo' does not exist in the current context
但是当我删除辅助方法时,所有这些都消失了!
我做错了什么或者在Razor模板中创建助手是不可能的?
答案 0 :(得分:0)
以下代码可以使用。
@helper ShowTree(IList<Models.Category> topics)
{
if (topics != null && topics.Any()) {
<ul>
@foreach (var topic in topics)
{
<li>
@topic.Title
@ShowTree(topic.Childs)
</li>
}
</ul>
}
}