[英]ASP.NET MVC View Model - How do I display data in the View?
我正在学习ASP.NET MVC,看来ViewModels是将数据从Controller传递到View并允许在View中使用多个模型的推荐方法。 因此,我创建了具有以下内容的ProductViewModel:
public IEnumerable<Product> Products { get; set; }
public IEnumerable<ProductCategory> ProductCategories { get; set; }
public IEnumerable<ProductDescription> ProductDescriptions { get; set; }
在我的控制器中,我有:
ProductViewModel productViewModel = new ProductViewModel();
productViewModel.Products = db.Products.ToList();
productViewModel.ProductDescription = db.ProductDescription.ToList();
return View(productViewModel);
我遇到的问题是在视图中遍历此数据。 我可以使用foreach
遍历例如Products
但是我不知道如何将其与ProductDescription
结合使用:
@model Site.ViewModels.ProductListingViewModel
@foreach (var item in Model.Products)
{
<tr>
<td>
@Html.DisplayFor(m => item.Name)
</td>
<td>
@Html.DisplayFor(m => item.ProductID)
</td>
<td>
@Html.DisplayFor(m => item.Color)
</td>
<td>
@Html.DisplayFor(m => item.Description???) - What do I actually need to write?
</td>
</tr>
}
由于Description列位于ProductDescription
,因此无法简单地使用item.Description
进行访问,因为item
专门指Products
。 我应该怎么做?
在这些情况下,我更喜欢循环。 为什么不使用for循环?
@for (int i=0;i<Products.Count;i++)
{
<tr>
<td>
@Html.DisplayFor(m => Products[i].Name)
</td>
<td>
@Html.DisplayFor(m => ProductDescription[i].Description)
</td>
</tr>
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.