如何将一个“列表”参数传递给Umbraco宏?
问题描述:
我有一把umbraco宏,我想传递一个“清单”的说法来—即我有我用XSLT转换多个元素,我想改变一些人在一个“特殊”的方式。如何将一个“列表”参数传递给Umbraco宏?
理想我想试试这样的:
<umbraco:Macro Alias="DoStuff" runat="server">
<styleThisSpecially>NameOfElement1</styleThisSpecially>
<styleThisSpecially>NameOfElement2</styleThisSpecially>
</umbraco:Macro>
遗憾的是,似乎没有工作—了“styleThisSpecially”元素不被识别。
解决方法我能想到的是:通过像 “styleThisSpecially1”, “styleThisSpecially2”, “styleThisSpecially3”,论据
- ...
- 穿过我的论点为逗号分隔像列表“ styleThisSpecially ='val1,val2,val3'“
...但这两个选项都不是很”整洁“。我尝试在umbraco:Macro元素上使用多个“styleThisSpecially”属性,但是导致错误(“该标签包含重复的'expandBox'属性”)。
是否有一个干净整洁的方式做到这一点?
答
如果我理解正确你开始在“X点”和工作了所有的元素,你想他们都传递给宏作为一个列表。 可能是一个整洁的解决方案有两种情况:1。 让页面不仅可以找到的元素,而且还重复这些,每次经过他们一到宏“呈现/处理/不管” 2.通“X点”宏观,让宏观工作了什么是元素?
没有真正回答您是否可以将元素列表传递给宏的问题,但我想也许(当然,如果您在XSLT中工作),这很少是您想要做的事情。
“我想变换有的是在一个‘特殊’的方式”用不同的'mode'转化不成问题? – Flack 2011-03-22 09:00:08
@Flack:这是个不错的主意。这个宏正在浏览所有当前页面的子页面,并以一种方式为大多数页面设计一个链接,然后以另一种方式设计“重要”(由客户定义)的样式(也许就像添加一个“突出显示”类—这不是真的发生了什么,但你明白了)。我想我只是通过一个“特殊”节点的列表作为参数。但是,现在我想我只是将属性添加到“特殊”子页面,并让XSLT以不同的方式处理它们。它实际上应该更清洁。 – George 2011-03-22 12:47:17
我仍然有兴趣知道,如果有通过对一把umbraco宏传递的参数“清单”的方式,但现在我觉得我原来的问题是,在一个整洁的方式解决。感谢Flack的想法。 – George 2011-03-22 12:53:57