Getting Title from ContentField

Topics: General
Jan 30, 2013 at 2:30 PM

Hi, Please could you explain how I would get the Title value from a ContentField?

Here is my code:

@using Orchard.ContentPicker.Fields
@using Orchard.Utility.Extensions;
@using Orchard.ContentManagement;


@{
    var field = (ContentPickerField) Model.ContentField;
    string name = field.DisplayName;
    var contentItems = field.ContentItems;

    var contentItemPicker = Model.ContentPart.ContentItem as ContentItem;
   
}


    @name:
    @if(contentItems.Any()) {
        foreach(var contentItem in contentItems) {

            var Parts = contentItem.Parts;
            var Title = contentItem.Parts.First(p => p.PartDefinition.Name == "TitlePart");
            var TitleDisplay = contentItem.Parts.SelectMany(p => p.Fields).Where(f => f.Name == "Title").FirstOrDefault();
                      
            @Html.ItemDisplayLink(contentItem) @contentItem.Id 
            if(contentItem != contentItems.Last()) {
                ,
            }
        }
    }
    else {
        @T("No content items.")
    }

 



Developer
Jan 30, 2013 at 4:05 PM

I don't believe a ContentPickerField has a Title value, but perhaps I misunderstood the question. Could you rephrase and/or elaborate?

 

Jan 30, 2013 at 5:49 PM

Hi sfmskywalker, thank you for your reply.

I'm trying to access the contentpicker's related content item's fields. I can see them when I debug and add a watch but can't find a way to access them.

I have a "product" content type that I've linked via a content field to a "category" content type. I'm trying to access the "category's" content type's fields, as besides Title it also includes a category description that I would like to display.

I hope that makes sense, thank you for your help.

Coordinator
Jan 31, 2013 at 2:29 AM
if you put contentItem into a dynamic variable: dynamic item = contentItem; then you can do item.TitlePart.Title
Jan 31, 2013 at 7:30 AM
Hi bertrandleroy, that worked! Thank you very much