1

我无法在 NopCommerce 主题中显示类别图像。这是我在CategoryTemplate.ProductsInGridOrLines.cshtml页面上使用的代码。

@if (Model.PictureModel != null && !String.IsNullOrWhiteSpace(Model.PictureModel.ImageUrl))
{
    <div class="category-picture">
        <img alt="@Model.PictureModel.AlternateText" src="@Model.PictureModel.ImageUrl" title="@Model.PictureModel.Title" />
    </div>
}

我试过删除 if 语句,它只会生成<img>.

4

2 回答 2

2

据我所知,类别图像应该像这样访问..

 @foreach (var item in Model.SubCategories)
            {
                count3++;
                <div class="sub-category-item col-4 alignCenter">
                    <h2 class="title">
                        <a href="@Url.RouteUrl("Category", new { SeName = item.SeName })" title="@item.PictureModel.Title" class="green">
                            @item.Name</a>
                    </h2>
                    <div class="picture">
                        <a href="@Url.RouteUrl("Category", new { SeName = item.SeName })" title="@item.PictureModel.Title">
                            <img alt="@item.PictureModel.AlternateText" src="@item.PictureModel.ImageUrl"
                                    title="@item.PictureModel.Title" /></a>
                    </div>
                </div>
                 if (count3 %3 == 0)
                {
                     @Html.Raw("</div><div class='row'>")
                }
            }

这是我目前正在处理的网站中原始 nopcommerce 代码的略微修改版本,并且此代码有效。请注意,图像取自 item.pictureModel 而不是 Model.PictureModel。

这是假设您没有将此代码移动到单独的文件中。

希望这可以帮助

于 2013-08-17T14:26:52.743 回答
0

在使用您的代码之前,您应该将以下代码添加到 CatalogController 中的 Category 方法:

//准备类别图片模型

        int picId = category.PictureId;
        int picSize = _mediaSettings.CategoryThumbPictureSize;
        var categoryPicCacheKey = string.Format(ModelCacheEventConsumer.CATEGORY_PICTURE_MODEL_KEY, model.Id, picSize, true, _workContext.WorkingLanguage.Id, _webHelper.IsCurrentConnectionSecured(), _storeContext.CurrentStore.Id);
        model.PictureModel = _cacheManager.Get(categoryPicCacheKey, () =>
        {
            var pictureModel = new PictureModel()
            {
                FullSizeImageUrl = _pictureService.GetPictureUrl(picId),
                ImageUrl = _pictureService.GetPictureUrl(picId, picSize),
                Title = string.Format(_localizationService.GetResource("Media.Category.ImageLinkTitleFormat"), model.Name),
                AlternateText = string.Format(_localizationService.GetResource("Media.Category.ImageAlternateTextFormat"), model.Name)
            };
            return pictureModel;
        });`
于 2013-09-02T10:25:07.670 回答