Asp.net mvc asp.net mvc viewmodel获取getenumerator的公共定义时出错
我可以让我的产品模型显示在我的视图中。但我需要将其传递到ViewModel中,以便可以与来自多个模型的数据进行交互。当我将视图绑定到ProductPageViewModel时,会出现“GetEnumerator没有公共定义”错误。我尝试了各种各样的IEnumerable选项,但找不到正确的组合 我包括了当视图绑定到模型时可以工作的控制器和视图 完全错误是 CS1579:foreach语句无法对JaniesWebLive.ViewModel.ProductPageViewModel类型的变量进行操作,因为 JaniesWebLive.ViewModel.ProductPageViewModel'不包含'GetEnumerator'的公共定义 在Asp.net mvc asp.net mvc viewmodel获取getenumerator的公共定义时出错,asp.net-mvc,Asp.net Mvc,我可以让我的产品模型显示在我的视图中。但我需要将其传递到ViewModel中,以便可以与来自多个模型的数据进行交互。当我将视图绑定到ProductPageViewModel时,会出现“GetEnumerator没有公共定义”错误。我尝试了各种各样的IEnumerable选项,但找不到正确的组合 我包括了当视图绑定到模型时可以工作的控制器和视图 完全错误是 CS1579:foreach语句无法对JaniesWebLive.ViewModel.ProductPageViewModel类型的变量进行操
@foreach触发(模型中的var项目)
Products.cs
public class Products
{
[Key]
public int WpId { get; set; }
public string Category { get; set; }
public string WpProductId { get; set; }
public string ProdDescShort { get; set; }
public string ProdDescLong { get; set; }
public string ProductMedium { get; set; }
public decimal? Price1 { get; set; }
}
ProductPageViewModel.cs
public class ProductPageViewModel
{
public IEnumerable<Products> Products { get; set; }
public Contact Contacts { get; set; }
public string Message { get; set; }
/*more models to be added */
}
ShortList.cshtml
@model IEnumerable<JaniesWebLive.ViewModel.ProductPageViewModel>
@foreach (var item in Model)
{
<div class="row">
<div class="col-md-4 col-sm-6 col-xs-12">
<p><img class="product-image" src=@Html.DisplayFor(modelItem => item.ProductMedium) /></p><br />
<h3>@Html.DisplayFor(modelItem => item.WpProductId)</h3>
<h5>@Html.DisplayFor(modelItem => item.Price1)</h5>
<h6>@Html.DisplayFor(modelItem => item.ProdDescShort)</h6>
<p class="text-center">@Html.DisplayFor(modelItem => item.ProdDescLong)</p>
<p>
<button class="text-right btn btn-link">SHORT LIST</button>
</p>
</div>
</div>
}
@model JaniesWebLive.Models.Products
@foreach (var item in Model)
{
<div class="row">
<div class="col-md-4 col-sm-6 col-xs-12">
<p><img class="product-image" src=@Html.DisplayFor(modelItem => item.ProductMedium) /></p>
<h3>@Html.DisplayFor(modelItem => item.WpProductId)</h3>
<h5>@Html.DisplayFor(modelItem => item.Price1)</h5>
<h6>@Html.DisplayFor(modelItem => item.ProdDescShort)</h6>
<p class="text-center">@Html.DisplayFor(modelItem => item.ProdDescLong)</p>
<p>
<button class="text-right btn btn-link">LONG LIST</button>
</p>
</div>
</div>
}
LongList.cshtml
@model IEnumerable<JaniesWebLive.ViewModel.ProductPageViewModel>
@foreach (var item in Model)
{
<div class="row">
<div class="col-md-4 col-sm-6 col-xs-12">
<p><img class="product-image" src=@Html.DisplayFor(modelItem => item.ProductMedium) /></p><br />
<h3>@Html.DisplayFor(modelItem => item.WpProductId)</h3>
<h5>@Html.DisplayFor(modelItem => item.Price1)</h5>
<h6>@Html.DisplayFor(modelItem => item.ProdDescShort)</h6>
<p class="text-center">@Html.DisplayFor(modelItem => item.ProdDescLong)</p>
<p>
<button class="text-right btn btn-link">SHORT LIST</button>
</p>
</div>
</div>
}
@model JaniesWebLive.Models.Products
@foreach (var item in Model)
{
<div class="row">
<div class="col-md-4 col-sm-6 col-xs-12">
<p><img class="product-image" src=@Html.DisplayFor(modelItem => item.ProductMedium) /></p>
<h3>@Html.DisplayFor(modelItem => item.WpProductId)</h3>
<h5>@Html.DisplayFor(modelItem => item.Price1)</h5>
<h6>@Html.DisplayFor(modelItem => item.ProdDescShort)</h6>
<p class="text-center">@Html.DisplayFor(modelItem => item.ProdDescLong)</p>
<p>
<button class="text-right btn btn-link">LONG LIST</button>
</p>
</div>
</div>
}
@model JaniesWebLive.Models.Products
@foreach(模型中的var项目)
{
项目.生产介质)/>
@DisplayFor(modelItem=>item.WpProductId)
@DisplayFor(modelItem=>item.Price1)
@DisplayFor(modelItem=>item.ProdDescShort)
@Html.DisplayFor(modelItem=>item.ProdDescLong)
长长的名单
}
您需要将视图更改为
@model JaniesWebLive.ViewModel.ProductPageViewModel
@foreach (var item in Model.Products )
{
<div class="row">
<div class="col-md-4 col-sm-6 col-xs-12">
<p><img class="product-image" src=@Html.DisplayFor(modelItem => item.ProductMedium) /></p><br />
<h3>@Html.DisplayFor(modelItem => item.WpProductId)</h3>
<h5>@Html.DisplayFor(modelItem => item.Price1)</h5>
<h6>@Html.DisplayFor(modelItem => item.ProdDescShort)</h6>
<p class="text-center">@Html.DisplayFor(modelItem => item.ProdDescLong)</p>
<p>
<button class="text-right btn btn-link">SHORT LIST</button>
</p>
</div>
</div>
}
@model JaniesWebLive.ViewModel.ProductPageViewModel
@foreach(Model.Products中的var项)
{
item.ProductMedium)/>
@DisplayFor(modelItem=>item.WpProductId)
@DisplayFor(modelItem=>item.Price1)
@DisplayFor(modelItem=>item.ProdDescShort)
@Html.DisplayFor(modelItem=>item.ProdDescLong)
短名单
}
由于upr视图模型是一个包含列表属性的单个对象,因此您需要写入该属性,而不是整个模型您的
LongList.cshtml
文件将该模型作为单个产品
-您不能循环通过单个对象@model JaniesWebLive.Models.Products
需要单个产品
不是产品的集合
。如果您想使用集合,只需更改为@model IEnumerable
。谢谢Rahul。我知道这是件小事。没想到这么小。我又有进步了。