我如何解决System.Collections.Generic.List没有ProductID或ProductID方法的区别?

时间:2016-03-01 18:56:10

标签: html css asp.net-mvc linq

以下是我的观点。

@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,但它没有解决问题我仍然遇到错误。

2 个答案:

答案 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替换所有项目的使用