在视图中打印集合

时间:2015-08-10 08:38:31

标签: asp.net-mvc

在我的项目中,我有一个actionResult方法返回一个像这样的对象集合:

public ActionResult PartNumberManufacturer(string id)
{
    var partNumber = Context.PartNumberTable.Where(x => x.PartNumberId == id); 
    return PartialView("PartNumberView",    partNumber);
}

这是我的观点

@model IEnumerable<Sales.Model.Part>
@if (Model != null && !string.IsNullOrEmpty(Model.PartNumberManufacturer))
{
    @if (Model.PartNumberManufacturer == "Fr")
    {
        <div>
            <p> This product is developed in france </p>
    }
    @if (@Model.PartNumberManufacturer == "Ger")
    {
        <p> This Product is developed in Germany </p>
    }
}

由于某些原因,当我运行查询来搜索partnumber时,它只返回数据库中第一个找到的partnumber,而不查询其他的。因此,经过网上研究和研究,我发现我需要返回一个集合并迭代该集合中的每个对象。

如何迭代我的集合abd访问集合中的每个对象?

谢谢

2 个答案:

答案 0 :(得分:2)

正确的方式,您不必自己编写循环,就是为您的模型创建一个DisplayTemplate:

@model PartNumber
@Html.DisplayFor(m => m.id)

然后您可以在PartNumberView

中使用该DisplayTemplate
@model IEnumerable<PartNumber>
@Html.DisplayForModel()

This will iterate automatically。当然,这可能是也可能不可行,具体取决于您希望视图的外观。

答案 1 :(得分:1)

如果要在视图中迭代集合,只需在局部视图中编写此代码即可:

@model IEnumerable<yourModel>
@foreach (var item in Model)
{
    <li>@item.title</li>
}

更新:我认为你需要这样的东西:

@model IEnumerable<Sales.Model.Part>
@foreach (var item in Model)
{
    if (Model != null && !string.IsNullOrEmpty(item.PartNumberManufacturer))
    {
        if (item.PartNumberManufacturer == "Fr")
        {
             <p> This product is developed in france </p>
        }
        else if (item.PartNumberManufacturer == "Ger")
        {
             <p> This Product is developed in Germany </p>
        }

    }
}