南希 - 超级简单视图引擎:嵌套@Each

时间:2012-03-30 16:26:39

标签: nancy

SSVE是否支持嵌套迭代器?

我希望在我的SSVE视图中查看对象图(见下文),但我怀疑嵌套迭代器不是这里的方法。还有另一种方法吗?

我知道SSVE是供内部使用的,并不适合完全生产使用,所以没有问题,但我不想添加对Razor的引用并弄乱我的web.config文件,除非我绝对必须这样做。

嵌套迭代器视图(我的最佳猜测)

@Master['_Master']

@Section['Content']
    <h1>Assessment - @Model.survey.title</h1>
    @Each.survey.pages 
        <div>
            <h2>@Current.title</h2>
            @Each.questions
                <div>@Current.title</div>
            @EndEach
        </div>
    @EndEach
@EndSection

2 个答案:

答案 0 :(得分:20)

这个问题现在已经很老了,但仍然会成为谷歌的最佳搜索结果,每个搜索结果都使用超级简单视图引擎进行嵌套。如果其他人遇到此问题,请知道每个部分视图的支持已添加到SSVE中。 (我用它来完成这种View嵌套 - 迭代集合中的集合。)

所以你可以使用两个视图来实现你想要的效果,其中外部视图如下所示:

@Master['_Master']

@Section['Content']
    <h1>Assessment - @Model.survey.title</h1>
    @Each.survey.pages 
        <div>
            <h2>@Current.title</h2>
            @Partial['QuestionList', Current.questions]
        </div>
    @EndEach
@EndSection

然后另一个View(SSVE将使用名称QuestionList找到)看起来像这样:

@Each
    <div>@Current.title</div>
@EndEach

虽然它会导致相当多的文件,但你应该可以通过重复这种模式来达到任意深度。

答案 1 :(得分:2)

不,那不行 - SSVE本质上只是一个正则表达式。 应该支持每个内部的部分内容,但目前它不支持。