Asp.net Umbraco:x.GetPropertyValue(“myProp”)与x.myProp

Asp.net Umbraco:x.GetPropertyValue(“myProp”)与x.myProp,asp.net,umbraco,umbraco4,Asp.net,Umbraco,Umbraco4,我使用Umbraco v4,但认为这应该是一个常见问题 我有一个通用属性“内容选择器”的“myNode”,它应该获得一个DynamicNode 因此,打瞌睡myObj.myNode我获得了节点本身。。。所以可以使用myObj.myNode.Url 但是通过myObj.GetPropertyValue(“myNode”)我获得了。。。节点的字符串ID值。。。所以不能再执行myObj.GetPropertyValue(“myNode”).Url(字符串没有Url属性) 我不能直接使用myObj.my

我使用Umbraco v4,但认为这应该是一个常见问题

我有一个通用属性“内容选择器”的“myNode”,它应该获得一个DynamicNode

因此,打瞌睡
myObj.myNode
我获得了节点本身
。。。所以可以使用
myObj.myNode.Url

但是通过
myObj.GetPropertyValue(“myNode”)
我获得了。。。节点的字符串ID
值。。。所以不能再执行
myObj.GetPropertyValue(“myNode”).Url
(字符串没有
Url
属性)

我不能直接使用myObj.myNode,因为它的名称是“动态的”(相同的函数应该根据条件使用“your”+“Node”或“this”+“Node”-这个例子非常近似,但希望想法是清楚的)

我甚至做了
myObj.GetPropertyValue(“myNode”)
,但结果是一样的:“8124”(节点id)


那么,如何获取不动产值,而不仅仅是它的字符串表示形式呢?

使用类似的东西:
mynode=Umbraco.Content(CurrentPage.mynode).Url
(对于Umbraco 6和7)对于Umbraco 4,我使用这个
Model.NodeById(Model.mynode).Url。(我认为它至少需要Umbraco 4.7.x)


另请参见使用以下内容:
mynode=Umbraco.Content(CurrentPage.mynode).Url
(对于Umbraco 6和7)对于Umbraco 4,我使用此
Model.NodeById(Model.mynode).Url。(我认为它至少需要Umbraco 4.7.x)


另请参见使用以下内容:
mynode=Umbraco.Content(CurrentPage.mynode).Url
(对于Umbraco 6和7)对于Umbraco 4,我使用此
Model.NodeById(Model.mynode).Url。(我认为它至少需要Umbraco 4.7.x)


另请参见使用以下内容:
mynode=Umbraco.Content(CurrentPage.mynode).Url
(对于Umbraco 6和7)对于Umbraco 4,我使用此
Model.NodeById(Model.mynode).Url。(我认为它至少需要Umbraco 4.7.x)


另请参见内容选择器不包含节点,它包含节点的id

GetPropertyValue(“myNode”)完全按照所说的做,在实例化的DynamicNode对象上获取名为myNode的属性的值。它不是用来返回节点本身的

如果要返回“myNode”属性包含其ID的节点,则必须在调用中使用该值来实例化另一个DynamicNode

DynamicNode myNewNode = new DynamicNode(myObj.GetPropertyValue("myNode"))


内容选择器不包含节点,它包含节点的id

GetPropertyValue(“myNode”)完全按照所说的做,在实例化的DynamicNode对象上获取名为myNode的属性的值。它不是用来返回节点本身的

如果要返回“myNode”属性包含其ID的节点,则必须在调用中使用该值来实例化另一个DynamicNode

DynamicNode myNewNode = new DynamicNode(myObj.GetPropertyValue("myNode"))


内容选择器不包含节点,它包含节点的id

GetPropertyValue(“myNode”)完全按照所说的做,在实例化的DynamicNode对象上获取名为myNode的属性的值。它不是用来返回节点本身的

如果要返回“myNode”属性包含其ID的节点,则必须在调用中使用该值来实例化另一个DynamicNode

DynamicNode myNewNode = new DynamicNode(myObj.GetPropertyValue("myNode"))


内容选择器不包含节点,它包含节点的id

GetPropertyValue(“myNode”)完全按照所说的做,在实例化的DynamicNode对象上获取名为myNode的属性的值。它不是用来返回节点本身的

如果要返回“myNode”属性包含其ID的节点,则必须在调用中使用该值来实例化另一个DynamicNode

DynamicNode myNewNode = new DynamicNode(myObj.GetPropertyValue("myNode"))


一个不那么优雅的解决方案,但至少是一个有效的解决方案:

var linkNode = image.GetPropertyValue("imgLinkNode" + model._lang.ToUpper());
if (linkNode is string)
{
    string id = linkNode;
    linkNode = model.NodeById(id);
}
var linkNodeUrl = linkNode.Url;

一个不那么优雅的解决方案,但至少是一个有效的解决方案:

var linkNode = image.GetPropertyValue("imgLinkNode" + model._lang.ToUpper());
if (linkNode is string)
{
    string id = linkNode;
    linkNode = model.NodeById(id);
}
var linkNodeUrl = linkNode.Url;

一个不那么优雅的解决方案,但至少是一个有效的解决方案:

var linkNode = image.GetPropertyValue("imgLinkNode" + model._lang.ToUpper());
if (linkNode is string)
{
    string id = linkNode;
    linkNode = model.NodeById(id);
}
var linkNodeUrl = linkNode.Url;

一个不那么优雅的解决方案,但至少是一个有效的解决方案:

var linkNode = image.GetPropertyValue("imgLinkNode" + model._lang.ToUpper());
if (linkNode is string)
{
    string id = linkNode;
    linkNode = model.NodeById(id);
}
var linkNodeUrl = linkNode.Url;


Umbraco.Content和CurrentPage仅适用于U6+。问题在于获取节点本身,而不是Url,我使用模型节点的属性,该属性指定另一个节点。。。我不需要使用当前的模型节点…请参阅下面的答案,它可以满足您的需要。您使用的是哪一个版本4?Umbraco.Content和CurrentPage仅适用于U6+问题是获取节点本身,而不是Url,我使用模型节点的属性,该属性指定另一个节点。。。我不需要使用当前的模型节点…请参阅下面的答案,它可以满足您的需要。您使用的是哪一个版本4?Umbraco.Content和CurrentPage仅适用于U6+问题是获取节点本身,而不是Url,我使用模型节点的属性,该属性指定另一个节点。。。我不需要使用当前的模型节点…请参阅下面的答案,它可以满足您的需要。您使用的是哪一个版本4?Umbraco.Content和CurrentPage仅适用于U6+问题是获取节点本身,而不是Url,我使用模型节点的属性,该属性指定另一个节点。。。我不需要使用当前的模型节点…请参见下面的答案,它将满足您的需要。您使用的是哪一个版本4?我已在OP中突出显示了相关信息。。。bc你的第一句话不准确。我已经在专栏中强调了相关信息。。。bc你的第一句话不准确。我已经在专栏中强调了相关信息。。。bc你的第一句话不准确。我已经在专栏中强调了相关信息。。。你的第一句话不准确。myObj是如何实例化的?给我们看看代码?内容采集器不是这样工作的。可能是其他一些时髦的数据类型,但不是内容选择器..myObj是如何实例化的-向我们展示代码?内容采集器不是这样工作的。可能是其他时髦的数据类型,但不是内容