2013-02-19 99 views
0

我正在为Orchard CMS编写模块,并且需要在小部件中显示我的内容类型元素。Orchard CMS自定义小部件视图

驱动/ FilesWidgetDriver.cs:

public class FilesWidgetPartDriver : ContentPartDriver<FilesWidgetPart> 
{ 
    private readonly IFileService _fileService; 

    public FilesWidgetPartDriver(IFileService fileService) 
    { 
     _fileService = fileService; 
    } 

    protected override DriverResult Display(FilesWidgetPart part, string displayType, dynamic shapeHelper) 
    { 
     return ContentShape("Parts_FilesWidget",() => shapeHelper.Parts_FilesWidget(
      Files: _fileService.GetFiles() 
     )); 
    } 
} 

型号/ FilesWidget.cs

public class FilesWidgetPart : ContentPart 
{ 
} 

查看/零件/ FilesWidget.cshtml

@using ModuleName.Models 
@using Orchard.ContentManagement 
@{ 
    var files = (IContentQuery<FilePart>)Model.Files; 
} 
<div> 
@foreach (var file in files) 
{ 
    @Html.ActionLink(file.FileName, "GetFile", "FileAdmin"); 
} 
</div> 

Migrations.cs

public int UpdateFrom1() 
{ 
    ContentDefinitionManager.AlterTypeDefinition("FilesWidget", type => type 
     .WithPart("FilesWidgetPart") 
     .WithPart("WidgetPart") 
     .WithSetting("Stereotype", "Widget") 
    ); 
    return 2; 
} 

public int UpdateFrom2() 
{ 
    ContentDefinitionManager.AlterTypeDefinition("FilesWidget", type => type 
     .WithPart("CommonPart") 
    ); 
return 3; 
} 

但是,当我小工具添加到网页,它是空的。怎么了?谢谢!

回答

2

您可能缺少展示位置。

+0

谢谢!但我已经通过编写动态形状来解决这个问题:) – 2013-02-19 22:25:51

相关问题