Я использую nopcommerce 2.2 и пытаюсь использовать частичное представление ProductVariant_SKU_Man_Stock
в _Productbox.cshtml
, но возникает ошибка: элемент модели, переданный в словарь, имеет тип
'System.Collections.Generic.List`1 [Nop.Web.Models.Catalog.ProductModel + ProductVariantModel]', но для этого словаря требуется элемент модели типа 'Nop.Web.Models.Catalog.ProductModel + ProductVariantModel'.
Ниже _Productbox.cshtml
:
@model Nop.Web.Models.Catalog.ProductModel
<div class="product-item">
<h2 class="product-title">
@Model.Name
</h2>
<div class="description">
@Html.Partial("_ProductVariant_SKU_Man_Stock",Model.ProductVariantModels)
@Html.Raw(Model.FullDescription) <br />
@Model.Size
</div>
<div class="add-info">
<div class="prices">
@Html.Partial("_ProductPrice", Model.ProductPrice)
</div>
<div class="buttons">
@* <input type="button" value="@T("Products.Details")" class="productlistproductdetailbutton" onclick="setLocation('@Url.RouteUrl("Product", new { productId = Model.Id, SeName = Model.SeName })')" />
*@ @if (!Model.ProductPrice.DisableBuyButton)
{
<br />
<input type="button" value="@T("ShoppingCart.AddToCart")" class="productlistaddtocartbutton" onclick="setLocation('@(@Url.RouteUrl("AddProductToCart", new { productId = Model.Id }))')" />
}
</div>
</div>
</div>
Есть ли другой способ сделать это, потому что мне нужны некоторые поля в этом частичном представлении для отображения в этом представлении.
productmodel.cs:
public class ProductModel : BaseNopEntityModel
{
public ProductModel()
{
ProductPrice = new ProductPriceModel();
// ProductSku = new ProductSkuModel();
DefaultPictureModel = new PictureModel();
PictureModels = new List<PictureModel>();
ProductVariantModels = new List<ProductVariantModel>();
SpecificationAttributeModels = new List<ProductSpecificationModel>();
}
public string Name { get; set; }
public string ShortDescription { get; set; }
public string FullDescription { get; set; }
public string ProductTemplateViewPath { get; set; }
public string MetaKeywords { get; set; }
public string MetaDescription { get; set; }
public string MetaTitle { get; set; }
public string SeName { get; set; }
public string Size { get; set; }
public ProductPriceModel ProductPrice { get; set; }
public bool DefaultPictureZoomEnabled { get; set; }
public PictureModel DefaultPictureModel { get; set; }
public IList<PictureModel> PictureModels { get; set; }
public IList<ProductVariantModel> ProductVariantModels { get; set; }
public IList<ProductSpecificationModel> SpecificationAttributeModels { get; set; }
public class ProductVariantModel : BaseNopEntityModel
{
public ProductVariantModel()
{
ProductSku = new ProductSkuModel();
GiftCard = new GiftCardModel();
ProductVariantPrice = new ProductVariantPriceModel();
PictureModel = new PictureModel();
AddToCart = new AddToCartModel();
ProductVariantAttributes = new List<ProductVariantAttributeModel>();
}
public string Name { get; set; }
public bool ShowSku { get; set; }
public string Sku { get; set; }
public string Description { get; set; }
public bool ShowManufacturerPartNumber { get; set; }
public string ManufacturerPartNumber { get; set; }
public string DownloadSampleUrl { get; set; }
public GiftCardModel GiftCard { get; set; }
public string StockAvailablity { get; set; }
public ProductVariantPriceModel ProductVariantPrice { get; set; }
public AddToCartModel AddToCart { get; set; }
public PictureModel PictureModel { get; set; }
public ProductSkuModel ProductSku { get; set; }
public IList<ProductVariantAttributeModel> ProductVariantAttributes { get; set; }
public class ProductVariantPriceModel : BaseNopModel
{
public string OldPrice { get; set; }
public string Price { get; set; }
public string PriceWithDiscount { get; set; }
public decimal PriceValue { get; set; }
public decimal PriceWithDiscountValue { get; set; }
public bool CustomerEntersPrice { get; set; }
public bool CallForPrice { get; set; }
public int ProductVariantId { get; set; }
public bool HidePrices { get; set; }
public bool DynamicPriceUpdate { get; set; }
}
public class ProductSkuModel : BaseNopModel
{
public string Sku { get; set; }
public bool ShowSku { get; set; }
}
Хотите использовать это частичное представление:
@model Nop.Web.Models.Catalog.ProductModel.ProductVariantModel
@if (!String.IsNullOrWhiteSpace(Model.StockAvailablity))
{
<div class="stock">
@Model.StockAvailablity
</div>
}
<div class="clear">
</div>
@if (!String.IsNullOrWhiteSpace(Model.Sku) && Model.ShowSku)
{
<div class="sku">
@Model.Sku
</div>
}
<div class="clear">
</div>
@if (!String.IsNullOrWhiteSpace(Model.ManufacturerPartNumber) && Model.ShowManufacturerPartNumber)
{
<div class="manufacturerpartnumber">
@Model.ManufacturerPartNumber
</div>
}