我的目標是在數據庫中爲每個對象生成一個表,比如在我的汽車中。根據汽車的狀況,我想要在給定的汽車的給定表格中顯示信息。我的問題是,我目前在每張表中顯示關於每輛車的相同信息,而與汽車無關。在Razor中使用查詢對錶進行排序
有沒有辦法在Razor中執行查詢?我知道我現在的汽車的身份證,這樣我就可以查詢那些有用的信息。這裏是我現在的代碼:
@foreach (var car in Model.myCars)
{
<h5>@Html.DisplayFor(modelItem => car.CarName)</h5>
<table>
<thead>
<tr>
<th>Id</th>
<th>Sjekkpunkt</th>
<th>Avviksbeskrivelse</th>
<th>Risiko</th>
<th>Dato rapportert</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.myCheckpoints.Zip(Model.myAnswers, (Item1, Item2) => new { Item1, Item2 }))
{
<tr>
<td>@Html.DisplayFor(modelItem => item.Item1.Id)</td>
<td>@Html.DisplayFor(modelItem => item.Item1.Description)</td>
<td>@Html.DisplayFor(modelItem => item.Item2.Deviation)</td>
<td>@Html.DisplayFor(modelItem => item.Item2.Risk)</td>
<td>@Html.DisplayFor(modelItem => item.Item2.dateReported)</td>
</tr>
}
這個代碼的問題,對於我每一輛車我迭代顯示完全相同的信息。現在Car表格和Model.myCheckpoints之間有一個連接。有沒有什麼方法可以查詢,以便在給定迭代中只能顯示連接到給定汽車的myCheckpoints?
我強烈建議你在控制器執行這種邏輯的,而不是視圖。儘管在視圖中這樣做肯定是可行的,但這不是最佳實踐。你想要做的是在控制器中過濾你的集合,以便爲你的視圖提供一個特定的模型對象,該對象包含你需要顯示的內容,從而使你可以將邏輯保持在最低限度(如果有的話)視圖。你需要研究的是使用一個函數,比如LINQ的'Where',它可以讓你執行這個過濾。 – sleeyuen