0

我正在为 Orchard CMS 编写模块,我需要在小部件中显示我的内容类型的元素。

驱动程序/文件WidgetDriver.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()
        ));
    }
}

模型/文件Widget.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>

迁移.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;
}

但是当我将小部件添加到页面时,它是空的。怎么了?谢谢!

4

1 回答 1

2

你可能错过了展示位置。

于 2013-02-19T22:03:29.850 回答