如何在CSHTML视图中更轻松地访问ContentItem的字段?

时间:2014-08-19 23:19:49

标签: orchardcms orchardcms-1.8

我已经写了一个辅助函数(我为此感到自豪 - 看看我能做什么!)这就是我需要的东西。但是,有没有内置的方法来访问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

1 个答案:

答案 0 :(得分:3)

如果您有一个名为Page的ContentType,其中包含一个名为Topic的字段,您可以执行以下操作:

dynamic item = Model.ContentItem;

string topic = item.Page.Topic.Value;

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