以下是我的观点。
@model List<EShopperTheme.Domain.Entities.Product>
@using System.Linq
@foreach (var item in Model)
{
<div class="col-sm-4">
<div class="product-image-wrapper">
<div class="single-products">
<div class="productinfo text-center">
<!--Add to Cart Button Here-->
@using (Html.BeginForm("AddToCart", "Cart"))
{
@Html.HiddenFor(x => x.ProductID)
@Html.Hidden("returnUrl", Request.Url.PathAndQuery)
<input type="submit" class="btn btn-default add-to-cart" value="Add to cart" />
}
</div>
</div>
</div>
</div>
</div>
}
当我运行应用程序时出现上述错误,我也添加了@ using.linq,但它没有解决问题我仍然遇到错误。
答案 0 :(得分:2)
您需要将隐藏更改为@Html.HiddenFor(x => item.ProductID)
。
您拥有它的方式,您正在尝试访问System.Collections.Generic.List中不存在的属性,这是您的模型,但您需要访问当前item
您正在迭代ProductID。
答案 1 :(得分:0)
我认为这应该可以解决问题(你必须在使用项目之前加上@):<img src="@Url.Action("GetMainPicture", "Product", new { @item.ProductID })" alt="" />
在foreach循环中用@item替换所有项目的使用