在我的项目中,我有一个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访问集合中的每个对象?
谢谢
答案 0 :(得分:2)
正确的方式,您不必自己编写循环,就是为您的模型创建一个DisplayTemplate:
@model PartNumber
@Html.DisplayFor(m => m.id)
然后您可以在PartNumberView
:
@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>
}
}
}