【发布时间】:2011-11-28 10:46:26
【问题描述】:
我正在为我们的在线商店重新设计模板(使用带有 NVelocity 视图引擎的 Castle Monorail),但想为某些用户提供旧布局。
我已经开始向 PropertyBag 添加一个变量来确定用户应该获得的版本并将布局设置为“BaseLayout.vm”,如下所示:
#if($StoreVersion == 2)
#parse("VersionTwo/DefaultLayout.vm")
#else
#parse('VersionOne/DefaultLayout.vm')
#end
这适用于布局,从技术上讲,我可以在每个模板文件中使用这种方法,但这似乎有点啰嗦。有没有更好的方法可以将其机械化?
【问题讨论】:
-
是BaseLayout.vm的全部内容还是其中的一部分?
-
这就是整个文件。这个想法是让代表动作的文件重定向到特定于版本的模板。我只是好奇是否有更好的方法来重定向到特定于版本的模板。
-
为什么不在控制器中设置
LayoutName属性? -
我以为我以前找过它,但我一定错过了。我可以使用它并在抽象控制器中覆盖 PreSendView,这样就可以完成这项工作。谢谢。
标签: asp.net castle-monorail nvelocity