簡體   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