我正在用一組資料項填充 HTML 表。
但我希望每個單元格都是可編輯的。所以我在控制元件中顯示專案欄位。例如:
@foreach (FleetRailcarDto railcar in editSection.Railcars)
{
<tr>
<td></td>
<td>
<select asp-for="@railcar.FleetId" asp-items="@Model.FleetOptions" class="form-control-sm edit-fleet-id">
</select>
</td>
<td>
<select asp-for="@railcar.Ownership" asp-items="@Model.OwnershipOptions" class="form-control-sm edit-ownership">
</select>
</td>
<td>
<input asp-for="@railcar.CarType" class="form-control-sm edit-cartype" />
</td>
</tr>
}
這顯示正常,但它為每個表行生成相同的 ID 屬性。
我知道我可以手動構建 HTML,但這里有一些事情要做。有沒有人找到一種方法來使用asp-for相同屬性的變體而不會導致重復的 ID 屬性?
uj5u.com熱心網友回復:
系結到集合進行編輯時,應該使用for回圈而不是foreach回圈來迭代集合。這樣你就可以生成一個索引器來將欄位組合在一起。您還需要一個隱藏欄位設定為每個專案的標識值:
@for (var i = 0; i < editSection.Railcars.Count;i )
{
<tr>
<td>
<input type="hidden" asp=for="editSection.Railcars[i].Id" />
</td>
<td>
<select asp-for="@editSection.Railcars[i].FleetId" asp-items="@Model.FleetOptions" class="form-control-sm edit-fleet-id">
</select>
</td>
<td>
<select asp-for="@editSection.Railcars[i].Ownership" asp-items="@Model.OwnershipOptions" class="form-control-sm edit-ownership">
</select>
</td>
<td>
<input asp-for="@editSection.Railcars[i].CarType" class="form-control-sm edit-cartype" />
</td>
</tr>
}
更多資訊:https : //www.learnrazorpages.com/razor-pages/model-binding#binding-complex-collections
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/400935.html
