Asp.net mvc 在nopcommerce中使用部分视图时出错
我正在使用nopcommerce 2.2&试图使用Asp.net mvc 在nopcommerce中使用部分视图时出错,asp.net-mvc,asp.net-mvc-3,razor,nopcommerce,Asp.net Mvc,Asp.net Mvc 3,Razor,Nopcommerce,我正在使用nopcommerce 2.2&试图使用\u Productbox.cshtml中的部分视图ProductVariant\u SKU\u Man\u Stock,但它出现了错误: 传递到字典中的模型项的类型为 'System.Collections.Generic.List'1[Nop.Web.Models.Catalog.ProductModel+ProductVariantModel], 但此词典需要类型为的模型项 'Nop.Web.Models.Catalog.ProductMo
\u Productbox.cshtml
中的部分视图ProductVariant\u SKU\u Man\u Stock
,但它出现了错误:
传递到字典中的模型项的类型为
'System.Collections.Generic.List'1[Nop.Web.Models.Catalog.ProductModel+ProductVariantModel],
但此词典需要类型为的模型项
'Nop.Web.Models.Catalog.ProductModel+ProductVariantModel'
下面是\u 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>
@model Nop.Web.Models.Catalog.ProductModel
@型号.名称
@Html.Partial(“\u ProductVariant\u SKU\u Man\u Stock”,Model.ProductVariantModels)
@Html.Raw(Model.FullDescription)
@型号。尺寸
@Html.Partial(“\u ProductPrice”,Model.ProductPrice)
@*
*@@if(!Model.ProductPrice.DisableBuyButton)
{
}
还有其他方法吗?因为我需要该局部视图中的一些字段在该视图中显示
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; }
}
公共类ProductModel:basenopenticmodel
{
公共产品模型()
{
ProductPrice=新的ProductPriceModel();
//ProductSku=新产品SKUModel();
DefaultPictureModel=新建PictureModel();
PictureModels=新列表();
ProductVariatModels=新列表();
SpecificationAttributeModels=新列表();
}
公共字符串名称{get;set;}
公共字符串ShortDescription{get;set;}
公共字符串FullDescription{get;set;}
公共字符串ProductTemplateViewPath{get;set;}
公共字符串元关键字{get;set;}
公共字符串元描述{get;set;}
公共字符串元标题{get;set;}
公共字符串SeName{get;set;}
公共字符串大小{get;set;}
公共产品价格模型产品价格{get;set;}
public bool DefaultPictureZoomEnabled{get;set;}
公共图片模型DefaultPictureModel{get;set;}
公共IList图片模型{get;set;}
公共IList ProductVariantModels{get;set;}
公共IList规范AttributeModels{get;set;}
公共类ProductVariatModel:BaseNoPenticModel
{
公共产品变量模型()
{
ProductSku=新产品SKUModel();
GiftCard=新的GiftCardModel();
ProductVariantPrice=新的ProductVariantPriceModel();
PictureModel=新建PictureModel();
AddToCart=新的AddToCartModel();
ProductVariantAttributes=新列表();
}
公共字符串名称{get;set;}
公共bool ShowSku{get;set;}
公共字符串Sku{get;set;}
公共字符串说明{get;set;}
public bool ShowManufacturerPartNumber{get;set;}
公共字符串ManufacturerPartNumber{get;set;}
公共字符串下载SampleURL{get;set;}
公共GiftCard模型GiftCard{get;set;}
公共字符串StockAvailability{get;set;}
public ProductVariantPriceModel ProductVariantPrice{get;set;}
公共AddToCartModel AddToCart{get;set;}
公共图片模型图片模型{get;set;}
公共产品SKU模型产品SKU{get;set;}
公共IList ProductVariantAttributes{get;set;}
公共类ProductVariantPriceModel:BaseNopModel
{
公共字符串OldPrice{get;set;}
公共字符串Price{get;set;}
公共字符串PriceWithDiscount{get;set;}
公共十进制价格值{get;set;}
公共十进制价格WithDiscountValue{get;set;}
public bool CustomerEntersPrice{get;set;}
公共bool CallForPrice{get;set;}
public int productVariatid{get;set;}
公共bool HidePrices{get;set;}
公共bool DynamicPriceUpdate{get;set;}
}
公共类ProductSkuModel:BaseNopModel
{
公共字符串Sku{get;set;}
公共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>
}
@model Nop.Web.Models.Catalog.ProductModel.ProductVariantModel
@如果(!String.IsNullOrWhiteSpace(Model.stockAvailability))
{
@模型有效性
}
@if(!String.IsNullOrWhiteSpace(Model.Sku)和&Model.ShowSku)
{
@型号:Sku
}
@if(!String.IsNullOrWhiteSpace(Model.ManufacturerPartNumber)和&Model.ShowManufacturerPartNumber)
{
@型号。制造商零件号
}
ProductVariant\u SKU\u Man\u Stock视图应为单个ProductVariant模型,您将为其提供一个它们的列表。如果您知道您将只有一个变量,则只需将该行更改为
@Html.Partial("_ProductVariant_SKU_Man_Stock",Model.ProductVariantModels.First())
_ProductVariant\u SKU\u Man\u Stock视图应该是一个ProductVariantModel,您将为其提供一个列表。如果您知道您将只有一个变量,则只需将该行更改为
@Html.Partial("_ProductVariant_SKU_Man_Stock",Model.ProductVariantModels.First())
还有一种替代方法,您可以将
ProductVariant\u SKU\u Man\u stock
中的库存数量等属性带入\u Productbox.cshtml
,而无需使用局部视图
方法如下:
添加以下代码集
在Productmodel.cs
中,有一个嵌套类,名为
public class ProductPriceModel : BaseNopModel
{
//here declare stockquantity
public int stockqty { get; set; }
}
在catalogcontroller.cs中
有一个函数叫做
private ProductModel.ProductPriceModel PrepareProductPriceModel(Product product)
{
//ADD THIS CODE BELOW
model.stockqty=productvariants[0].StockQuantity;
}
在\u Productbox.cshtml
中添加
@if (Model.ProductPrice.stockqty <= 0)
{
<div class="innerrtcarts">
insert out of stock message or image
</div>
}
@if(Model.ProductPrice.stockqty有一种替代方法,您可以将ProductVariant\u SKU\u Man\u stock
中的库存数量等属性带入\u Productbox.cshtml
,而无需使用局部视图
方法如下:
添加以下代码集
在Productmodel.cs
中,有一个嵌套类,名为
public class ProductPriceModel : BaseNopModel
{
//here declare stockquantity
public int stockqty { get; set; }
}
在catalogcontroller.cs
中
有一个函数叫做
private ProductModel.ProductPriceModel PrepareProductPriceModel(Product product)
{
//ADD THIS CODE BELOW
model.stockqty=productvariants[0].StockQuantity;
}
在\u Productbox.cshtml
中添加
@if (Model.ProductPrice.stockqty <= 0)
{
<div class="innerrtcarts">
insert out of stock message or image
</div>
}
@if(Mod