これもOKです。例:
==>「NumberController」ファイルの場合:
public ActionResult Create([Bind(Include = "NumberId,Number1,Number2,OperatorId")] Number number)
{
if (ModelState.IsValid)
{
...
...
return RedirectToAction("Index");
}
ViewBag.OperatorId = new SelectList(db.Operators, "OperatorId",
"OperatorSign", number.OperatorId);
return View();
}
==>ビューファイル(Create.cshtml):
<div class="form-group">
@Html.LabelFor(model => model.Number1, htmlAttributes: new { @class =
"control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Number1, new { htmlAttributes = new {
@class = "form-control" } })
@Html.ValidationMessageFor(model => model.Number1, "", new { @class =
"text-danger" })
</div>
</div>
このステートメントを削除すると、次のようになります。
ViewBag.OperatorId = new SelectList(db.Operators, "OperatorId", "OperatorSign", number.OperatorId)
次のステートメントの後ろから(コントローラー内):
return View();
このエラーが表示されます:
キー「OperatorId」を持つタイプ「IEnumerable」のViewDataアイテムはありません。
*したがって、これらのステートメントが存在することを確認してください。*
<%= Html.DropDownList("submarket_0", ((SelectList)ViewData["Submarkets"]).Items, "(none)") %>
DropDownListはIEnumerable<SelectListItem>
。を取ります。