[英]Umbraco: x.GetPropertyValue(“myProp”) vs x.myProp
我使用的是Umbraco v4,但認為這應該是一個常見的問題。
我有一個“內容選擇器”的通用屬性“ myNode”,應該獲得一個DynamicNode ...
所以在執行myObj.myNode
我獲得了節點本身 ...因此可以使用myObj.myNode.Url
但是, 在執行myObj.GetPropertyValue("myNode")
我獲得了...節點的字符串ID值...因此,不再可以使用myObj.GetPropertyValue("myNode").Url
(字符串沒有Url
屬性)
我不能直接使用myObj.myNode,因為名稱是“ dynamic”(相同的函數應在條件上使用“ your” +“ Node”或“ their” +“ Node”)-該示例非常接近,但希望想法很明確)...
我什至做了myObj.GetPropertyValue<DynamicNode>("myNode")
,但是結果是一樣的:“ 8124”(節點ID)
那么,如何獲得不動產值,而不僅僅是它的字符串表示形式?
您的內容選擇器不包含節點,而是包含節點的ID。
myObj.GetPropertyValue(“ myNode”)完全按照說的做,在實例化的DynamicNode對象上獲取名為myNode的屬性的值。 它不旨在返回節點本身。
如果要返回其“ myNode”屬性包含其ID的節點,則必須在調用中使用該值來實例化另一個DynamicNode
DynamicNode myNewNode = new DynamicNode(myObj.GetPropertyValue("myNode"))
要么
Model.NodeById(myObj.GetPropertyValue("myNode"))
使用類似的東西: mynode = Umbraco.Content(CurrentPage.myNode).Url
(用於Umbraco 6和7)對於Umbraco 4,我使用此Model.NodeById(Model.myNode).Url;
在腳本文件中。 (我認為至少需要Umbraco 4.7.x)
一個不太好用的解決方案,但至少是一個可行的解決方案:
var linkNode = image.GetPropertyValue("imgLinkNode" + model._lang.ToUpper());
if (linkNode is string)
{
string id = linkNode;
linkNode = model.NodeById(id);
}
var linkNodeUrl = linkNode.Url;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.