繁体   English   中英

ASP.NET MVC视图模型-如何在视图中显示数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM