以下のようなクラスがいくつかあります-
public class P
{
public int Id { get; set; }
public virtual ICollection<PDetail> PDetails { get; set; }
}
public class PDetail
{
public int Id { get; set; }
public int Type { get; set; }
public double Price { get; set; }
}
今、私のビューでは、それを次のように表示しています-
@foreach (var detail in Model.PDetails)
{
<div class="row">
<div class="col-sm-6">
@Html.DropDownListFor(m => detail.Type, (IEnumerable<SelectListItem>)ViewData["Types"], "--Type--", htmlAttributes: new { @class = "form-control" })
</div>
<div class="col-sm-6">
@Html.TextBoxFor(m => detail.Price, "", htmlAttributes: new { @class = "form-control", placeholder = "Price" })
</div>
</div>
}
ここでは、detail.Price
詳細オブジェクトごとに表示できますが、ドロップダウン リストdetail.Type
から選択されていませんViewData["Types"]
。
PS: ViewData["Types"]
typeIds = {1,2,3...} の単なる辞書です。
情報1
ビューを次のように変更してみました -
@for (int i = 0; i < Model.PDetails.Count(); i++)
{
<div class="row">
<div class="col-sm-6">
@Html.DropDownListFor(m => m.PDetails.ElementAt(i).Type, (IEnumerable<SelectListItem>)ViewData["Types"], "--Type--", htmlAttributes: new { @class = "form-control" })
</div>
</div>
}
しかし、それはまだ機能していません。どうすれば修正できますか?