ビューに次の動的に作成されたテキストボックスがあります。
@for (int i = 0; i < Model.MullionList.Count; i++)
{
ItemDrops curMullItem = Model.MullionList.ElementAt(i);
<div class="form-group">
@Html.Label(curMullItem.ItemName.ToString(), new { @class = "col-sm-6 control-label" })
<div class="col-sm-6">
@Html.TextBoxFor(x => x.MullionList[i].ItemPossInfo, new { @class = "form-control" })
@Html.HiddenFor(x => x.MullionList[i].ItemName)
</div>
</div>
}
特定の種類の製品では、これらのドロップダウンを選択したにもかかわらず、投稿時にnullが返されることがありました(MullionListの場合)。
そのため、特定の製品では機能しますが、他の製品では機能しません。
さらに奇妙な部分は、このセクションをビューのさらに下に削除すると、機能します(つまり、フォームが投稿されたときにMulionListがnullではない)
<div class="form-group">
@Html.Label("Glass", new { @class = "col-sm-6 control-label", id = "glass-first-label" })
<div class="col-sm-6">
@Html.DropDownListFor(gu => gu.GlassItems[0].Value, Model.GlassTypes, "-- Select --", new { @class = "form-control glass-multi-select", id = "Glass" + 0 })
</div>
</div>
<div id="hidden-glass-select" style="display: none">
@for (int i = 1; i < Model.GlassUnitsCount; i++)
{
var glassUnit = Model.GlassUnits.ElementAt(i);
<div class="form-group">
@Html.Label(glassUnit.ToString(), new { @class = "col-sm-6 control-label" })
<div class="col-sm-6">
@Html.DropDownListFor(gu => gu.GlassItems[i].Value, Model.GlassTypes, "-- Select --", new { @class = "form-control glass-multi-select", id = "Glass" + i })
</div>
</div>
}
</div>
<div class="form-group">
@Html.LabelFor(go => go.GlazzingInfoVal, "Glazzing Option", new { @class = "col-sm-6 control-label" })
<div class="col-sm-6">
@Html.DropDownListFor(go => go.GlazzingInfoVal, Model.GlazzingOptions, "-- Select --", new { @class = "form-control" })
</div>
</div>
私は今これを修正したと思います。
すべてのアイテムの名前を変更しました(GlassまたはGlazzingで始まるリストで機能します!)
これは適切なMVCバグのように見えます
この回答のおかげで:https://stackoverflow.com/a/16113919/66975
これは私に数時間かかりました、GRRRR
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加