我正在使用umbraco中的usercontrolwrapper开发一个自定义数据类型。我有一些需要值的数据编辑器或设置。
dynamic landkaart = new DynamicMedia(umbraco.library.GetPreValues(1100));
dynamic pointer = new DynamicMedia(umbraco.library.GetPreValues(1100));如您所见,我使用的是GetPrevalue()方法,因此我可以访问这些值。现在唯一的问题是我不想硬编码那些id,我想我需要一些像NodeById()这样的方法,除了我想要通过属性别名。有没有人知道这样的方法,或者知道我可以用来获取属性id的方法?
发布于 2012-11-08 15:59:07
这是我想出的解决方案:
Document d = new Document(@Model.Id);
var pt = d.getProperty(propAlias).PropertyType;
var preVals = PreValues.GetPreValues(pt.DataTypeDefinition.Id); 发布于 2012-11-07 19:10:10
如果你使用uComponents,你可以从它的名字中获得一个Id --但是我不确定这是否适用于PreValues (你使用的是Umbraco吗?)
var prevalueId = uComponents.Core.uQuery.GetNodesByName("MyPrevalueName").First().Id;要删除魔术数字硬编码,您可以将'1100‘移动到web.config中,并为它指定一个自己的名称:
<add key="PrevalueNodeName" value="MyPrevalueName"/>
var prevalueId = uComponents.Core.uQuery.GetNodesByName(ConfigurationManager.AppSettings["PrevalueNodeName"].ToString()).First().Id;
dynamic landkaart = new DynamicMedia(umbraco.library.GetPreValues(prevalueId));或者如果前值不喜欢按名称访问:
<add key="PrevalueNodeName" value="1100"/>
var prevalueId = ConfigurationManager.AppSettings["PrevalueNodeName"].ToString())
dynamic landkaart = new DynamicMedia(umbraco.library.GetPreValues(prevalueId));https://stackoverflow.com/questions/13255012
复制相似问题