NopCommerce - 类别图像不显示

时间:2013-08-15 18:13:54

标签: asp.net nopcommerce

我无法在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>

2 个答案:

答案 0 :(得分: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。

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

希望这会有所帮助

答案 1 :(得分: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;
        });`