Orchard - Как отобразить больше полей элемента контента в летнем виде - PullRequest
3 голосов
/ 19 июня 2011

Допустим, у меня есть продукт, к которому я добавил поле изображения под названием SmallImage.

Когда я показываю список продуктов, я хочу, чтобы маленькое изображение было в виде.Когда я перехожу к списку подразделений, я получаю сводный вид по умолчанию, например:

<article class="content-item @contentTypeClassName">
    <header>
        @Display(Model.Header)
        @if (Model.Meta != null) {
        <div class="metadata">
            @Display(Model.Meta)
        </div>
        }
    </header>
    @Display(Model.Content)
    @if(Model.Footer != null) {
    <footer>
        @Display(Model.Footer)
    </footer>
    }
</article>

Как @ Display (Model.Content) генерирует HTML?

Где находится файл .cshtml , который я могу поместить @Html.Image (Model.SmallImage) в?

EDIT

Хорошо, я нашел это свойство вне модели: Model.ContentItem.Product.SmallImage.FileName , поэтому мне просто нужно знать, где находится файл шаблона.

THX!Дан

Бонусный вопрос: Использование инструментов дизайнера в любом представлении списка.Перейдите в Zone [Content] .Content.List .Под Shape указано, что есть два альтернативных вида.Одним из них является MyTheme / Views / List.Html.Если вы нажмете «создать», появится Относительный виртуальный путь 'Orchard.Core.Shapes.CoreShapes :: List' здесь не разрешен. Означает ли это, что на самом деле альтернативы этому представлению не существует

1 Ответ

1 голос
/ 20 июня 2011

Я вручную создал файл, который сообщал мне об ошибке в бонусном вопросе, и я получил изображение. ( Список-URL-products.cshtml )

 <div>
    @foreach(var item in Model)
    {
        <div>@item.Title.ToString()</div>

        var division = item.ContentItem.Division;
        var smallImage = (Contrib.ImageField.Fields.ImageField) division.ListImage;

        if(smallImage.FileName != null)
        {
            <div>@Html.Image(smallImage.FileName, null, new { Width=smallImage.Width, Height=smallImage.Height }) </div>    
        }   
    }
 </div>
...