我有一个主从页面,当您单击请求的查看详细信息时,它将在下表中填充数据。当用户单击请求上的查看详细信息时,如何让第二个表填充具有匹配ID的数据?当我现在进行遍历时,它会找到确实匹配的ID,但是如果我无法捕获所选的项目ID并去查找具有相同ID的行,它们将全部匹配。
Top table is the requests and the bottom table is the request details.
这是我的请求控制器中的代码,可从请求详细信息中获取数据。我正在查找ID,并尝试将其与所选项目进行比较,但即时通讯仍会取回所有记录。
//Requests Controller
public ActionResult Index(IA_RequestDetails iA_RequestDetails, IA_Requests iA_Requests, long? id = null)
{
List<IA_Requests> requestList = db.IA_Requests.ToList();
List<IA_RequestDetails> newRequestList = db.IA_RequestDetails.ToList();
var model = new InventoryAnalysisMasterDetailsModel();
model.RequestDetailsList = newRequestList;
model.RequestList = requestList;
if (id != null)
{
model.SelectedItems = newRequestList.Find(model => model.RequestId == id && model.SelectedItemsId == id);
model.SelectedItemsId = id;
}
return View(model);
}
我认为我正在使用foreach语句
foreach (var item in Model.RequestDetailsList)
{
<tr>
<td>
@item.RequestId
</td>
<td>
@item.Item
</td>
<td>
@item.LineID
</td>
<td>
@Html.ActionLink("Edit Item", "Edit", new { id = item.LineID, controller = "IA_RequestDetails" }) |
@Html.ActionLink("View Item Details", "Details", new { id = item.LineID, controller = "IA_RequestDetails" })
</td>
</tr>
}
非常感谢您的帮助。谢谢。
答案 0 :(得分:2)
这个问题让我有些困惑,但想提供帮助。 Find将返回单个Item,因此SelectedItems有点令人困惑。
您想要的东西类似于:
newRequestList.Where(model => model.RequestId == id && model.SelectedItemsId == id);
答案 1 :(得分:0)
按照最初的想法,where子句是我所需要的。这只是我在哪里以及做什么的问题: 在if语句中添加where子句。相当简单,对我来说有点麻烦。
model.RequestDetailsList = newRequestList.Where(x => x.RequestId == model.SelectedItemsId).ToList();