如何在Velocity模板中为不同的用户类型提供单独的布局?

时间:2011-11-28 10:46:26

标签: asp.net castle-monorail nvelocity

我正在为我们的在线商店重新设计模板(使用Castle Monorail和NVelocity视图引擎),但希望为某些用户提供旧版面。

我开始在PropertyBag中添加一个变量来确定用户应该获得的版本,并将布局设置为'BaseLayout.vm',如下所示:

#if($StoreVersion == 2)
    #parse("VersionTwo/DefaultLayout.vm")
#else
    #parse('VersionOne/DefaultLayout.vm')
#end

这适用于布局,我可以在每个模板文件中技术上使用这种方法,但这似乎有点长。我有更好的机械化方法吗?

2 个答案:

答案 0 :(得分:2)

您可以将条件放在代码中并在控制器中设置LayoutName属性,而不是将其有条件地“转发”到其他布局的布局。

答案 1 :(得分:0)

我会创建一个控制器过滤器,并根据您的逻辑覆盖要呈现的布局名称