London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

IList with content reference returning as string instead of details

Vote:
 

Hi Folks,

I am trying to retrieve an IList of an object containg an image and a url.  The image is a contentreference, with the Image url hint.  When trying to retrieve this through the content delivery api I am just getting a string value back

The IList is a list of this object

public class SocialMediaLink
{
    [Display(Name = "Social Link Icon", Order = 10)]
    [UIHint(UIHint.Image)]
    public virtual ContentReference SocialLinkIcon { get; set; }

    [Display(Name = "Social Link Url", Order = 20)]
    [JsonConverter(typeof(UrlConverter))]
    public virtual Url SocialLinkUrl { get; set; }
}

Property is like this

    [Display(Name = "Social Media Links", Order = 40, GroupName = TabNames.Footer)]
    [EditorDescriptor(EditorDescriptorType = typeof(CollectionEditorDescriptor<SocialMediaLink>))]
    public virtual IList<SocialMediaLink> FooterListOfSocialLinkProperty { get; set; }

I have a property model 

public class SocialMediaLinkPropertyModel : PropertyModel<IList<SocialMediaLink>, SocialMediaLinkProperty>
{
    public SocialMediaLinkPropertyModel(SocialMediaLinkProperty type) : base(type)
    {
        base.Value = type.List;
    }
}

and a property list

[PropertyDefinitionTypePlugIn]
public class SocialMediaLinkProperty : PropertyList<SocialMediaLink>
{

}

When I call the page in the api this is all I get.

"footerListOfSocialLinkProperty": [
            {
                "socialLinkIcon": "12__dam",
                "socialLinkUrl": "/link/06f9d82e23b9496487c7613e138ce957.aspx"
            },
            {
                "socialLinkIcon": "12__dam",
                "socialLinkUrl": "/link/06f9d82e23b9496487c7613e138ce957.aspx"
            },
            {
                "socialLinkIcon": "4__dam",
                "socialLinkUrl": "/link/06f9d82e23b9496487c7613e138ce957.aspx"
            }
        ],

I have a single contentreference as a property on the page which is set up the same way, but works perfectly

"footerSiteLogo": {
            "id": 3,
            "workId": 0,
            "guidValue": "027606ae-5a89-4f1e-bd53-0e7b604a905e",
            "providerName": "dam",
            "url": "https://images2.cmp.optimizely.com/assets/logo.png",
            "expanded": {
                "contentLink": {
                    "id": 3,
                    "workId": 0,
                    "guidValue": "027606ae-5a89-4f1e-bd53-0e7b604a905e",
                    "providerName": "dam",
                    "url": "https://images2.cmp.optimizely.com/assets/logo.png",
                    "expanded": null
                },
                "name": "Logo_BLACK.png",
                "language": {
                    "link": "https://images2.cmp.optimizely.com/assets/logo.png",
                    "displayName": "Invariant Language (Invariant Country)",
                    "name": ""
                },
                "existingLanguages": [],
                "masterLanguage": null,
                "contentType": [
                    "Image",
                    "Media",
                    "DAMImageAsset"
                ],
                "parentLink": null,
                "routeSegment": "logo_black.png",
                "url": "https://images2.cmp.optimizely.com/assets/logo.png",
                "changed": "0001-01-01T00:00:00Z",
                "created": "0001-01-01T00:00:00Z",
                "startPublish": "2024-07-17T23:00:00Z",
                "stopPublish": null,
                "saved": "2024-07-17T23:00:00Z",
                "status": "Published",
                "category": [],
                "thumbnail": null,
                "mimeType": "image/png"
            }
        },
[UIHint(UIHint.Image)]
[Display(Name = "Footer Site Logo", Order = 30, GroupName = TabNames.Footer)]
public virtual ContentReference FooterSiteLogo { get; set; }

Anyone any idea?

#325579
Edited, Jul 18, 2024 11:10
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.