0

我编写了一个辅助函数(我为此感到非常自豪——看看我能做什么!)它可以满足我的需要。但是,是否有一种内置方法可以访问 aContentItem的字段而无需先获取“main” ContentPart?这里的“main”一词的意思是ContentPart与 同名的ContentType

@functions
{
    dynamic GetMainPartFromContentItem(ContentItem item)
    {
        var contentType = item.TypeDefinition.Name;
        var parts = item.Parts as List<Orchard.ContentManagement.ContentPart>;
        dynamic mainPart = parts.First(p => p.PartDefinition.Name.Equals(contentType));
        return mainPart;
    }
}

dynamic mainPart = GetMainPartFromContentItem(contentItem);
var shortTitle = mainPart.ShortTitle.Value; // access an InputField's value
4

1 回答 1

3

如果你有一个名为 Page 的 ContentType 和一个名为 Topic 的字段,你可以这样做:

dynamic item = Model.ContentItem;

string topic = item.Page.Topic.Value;

基本上,当您将字段直接添加到内容项时,它们将被添加到您的内容项上的一个部分,无论您的内容类型是什么,在本例中为 Page

于 2014-08-20T09:40:51.900 回答