2013-02-19 2 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

спасибо! но я уже решил эту проблему, написав динамическую форму :) –

Смежные вопросы