我无法在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>
。
答案 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;
});`