首页
学习
活动
专区
圈层
工具
发布

Umbraco?
EN

Stack Overflow用户
提问于 2012-11-07 00:13:36
回答 2查看 277关注 0票数 2

我正在使用umbraco中的usercontrolwrapper开发一个自定义数据类型。我有一些需要值的数据编辑器或设置。

代码语言:javascript
复制
dynamic landkaart = new DynamicMedia(umbraco.library.GetPreValues(1100));
dynamic pointer = new DynamicMedia(umbraco.library.GetPreValues(1100));

如您所见,我使用的是GetPrevalue()方法,因此我可以访问这些值。现在唯一的问题是我不想硬编码那些id,我想我需要一些像NodeById()这样的方法,除了我想要通过属性别名。有没有人知道这样的方法,或者知道我可以用来获取属性id的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-08 15:59:07

这是我想出的解决方案:

代码语言:javascript
复制
Document d = new Document(@Model.Id);
var pt = d.getProperty(propAlias).PropertyType;
var preVals = PreValues.GetPreValues(pt.DataTypeDefinition.Id); 
票数 1
EN

Stack Overflow用户

发布于 2012-11-07 19:10:10

如果你使用uComponents,你可以从它的名字中获得一个Id --但是我不确定这是否适用于PreValues (你使用的是Umbraco吗?)

代码语言:javascript
复制
var prevalueId = uComponents.Core.uQuery.GetNodesByName("MyPrevalueName").First().Id;

要删除魔术数字硬编码,您可以将'1100‘移动到web.config中,并为它指定一个自己的名称:

代码语言:javascript
复制
<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));

或者如果前值不喜欢按名称访问:

代码语言:javascript
复制
<add key="PrevalueNodeName" value="1100"/>

var prevalueId = ConfigurationManager.AppSettings["PrevalueNodeName"].ToString())
dynamic landkaart = new DynamicMedia(umbraco.library.GetPreValues(prevalueId));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13255012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档