の操作を持っていますということです。私はポストによる配列として読み取るためにこの種のものを達成しようとしています
@model IEnumerable<Project.Models.VehicleTypeSeat>
@using PagedList.Mvc;
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
int counter = 0;
}
<p>
</p>
<table>
<tr>
<th>
<div class="editor-field">
Crew
</div>
</th>
<th>
Description
</th>
</tr>
@{
@for (var item in model)
{
<tr>
<input type="hidden" name="raceSeats.index" value="@(counter)" />
<td>
@Html.DropDownList(item.CrewID, null, "--Select Crew Member--", htmlAttributes: new { @class = "form-control", @name = "raceSeats["[email protected]+"].PersonID" })
</td>
<td>
@Html.DisplayFor(modelItem => item.VehicleTypeSeatDescription)
</td>
</tr>
counter += 1;
}
</table>
}
私は質問を完全に理解しているかどうかはわかりませんが、モデルにバインドし直したいときは、foreach
が問題を引き起こす可能性があります。代わりに試してください
@for (int i = 0; i < model.Count(); i++)
{
// reference each item by index
@Html.DropDownListFor(model[i].CrewID,
null, "--Select Crew Member--", htmlAttributes: new { @class = "form-control"})
}
コントローラでそのロジックを処理する必要があります。あなたのコントローラでは、データリストを(例えば)ViewBag.Seatsに割り当て、ビューでは、dropdownfor(その項目)を使用する単一のモデル項目を表示するための通常の構造を使用し、ViewBag.Seatsをそのソースにします。 – nocturns2
ええ、コントローラにドロップダウンリストが作成されています。 ViewBag.CrewIDです。しかし、問題は上記のコードを投稿すると、VehicleAndCrew [] vehicleAndCrewを探すことです。私はビューが正確に何個あるか知っていないので、viewBag項目の動的な数を作成することはできません。 –
私はまだあなたの意図を理解していませんが、あなたのコントローラにリストまたは配列を作成した場合は、ViewBag.CrewCountを介して常にリスト数(またはarray.length)を渡すことができます。 – nocturns2