1

我目前正在为 umbraco 制作用户控件,它将所有内容都Nodes包含在Node名称“Features”中......而且这一切都可以正常工作,直到我想从“Content Picker”属性(命名为 linkToPage)中获取内容。

当我尝试使用GetProperty("linkToPage").Value时,我收到一个关于它是一个对象的错误。所以我然后将它添加到 avar并调试,并看到它返回的东西有点奇怪......

var linkIdVar = child.GetProperty("linkToPage");

回报:

-   linkIdVar   {1081}      umbraco.interfaces.IProperty {umbraco.NodeFactory.Property}
    -   [umbraco.NodeFactory.Property]  {1081}  umbraco.NodeFactory.Property
        Alias   "linkToPage"    string
        Value   "1081"  string
        +   Version {00000000-0000-0000-0000-000000000000}  System.Guid
        +   Non-Public members      
    Alias   "linkToPage"    string
    Value   "1081"  string
    +   Version {00000000-0000-0000-0000-000000000000}  System.Guid

而且我似乎无法将 Value 设置为 Int 而不会出错,因为它是一个对象......

那么有谁知道如何解决这个问题,或者知道如何更好地从 a 获取页面Content Picker

4

1 回答 1

2

我认为您可能需要将值拆箱为整数,如下所示:

var val = (int) child.GetProperty("linkToPage").Value;

但是,如果属性值的内容不是整数,而是字符串,如调试信息所示,则需要转换为整数,如下所示:

var val = int.Parse(child.GetProperty("linkToPage").Value as string);
于 2013-01-07T10:18:58.803 回答