我已经写了一个辅助函数(我为此感到自豪 - 看看我能做什么!)这就是我需要的东西。但是,有没有内置的方法来访问ContentItem
的字段而不首先得到“主”ContentPart
?这里的“主要”一词表示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
答案 0 :(得分:3)
如果您有一个名为Page的ContentType,其中包含一个名为Topic的字段,您可以执行以下操作:
dynamic item = Model.ContentItem;
string topic = item.Page.Topic.Value;
基本上,当您将字段直接添加到内容项时,它们将被添加到您的内容项的一个部分,称为您的内容类型,在本例中为Page