私は MVC を初めて使用し、コードを理解するのに苦労しています。新しいコントローラーを作成し、それを使用してすべての CRUD メソッドとビュー (ビジュアル スタジオによって自動生成) を作成しましたが、コードの一部を理解できませんでした。
コントローラーで、データベースから SelectList を設定し、次のように ViewBag に入れます。
public ActionResult Create()
{
ViewBag.TypeID = new SelectList(db.PlacementTypes, "TypeID", "Description");
return View();
}
ビューでは次のようになります。
<div class="editor-label">
@Html.LabelFor(model => model.TypeID, "PlacementType")
</div>
<div class="editor-field">
@Html.DropDownList("TypeID", String.Empty)
@Html.ValidationMessageFor(model => model.TypeID)
</div>
わからないのは。SelectList は一体どこから来ているのでしょうか。ViewBag への呼び出しが表示されないためです。
私は次のようなものを期待します:
@Html.DropDownListFor("TypeID", (SelectList)ViewBag.TypeID)
それは私の疑問です。ViewBag を指定せずに、MVC はどのようにして正しいリストを見つける場所を知るのでしょうか?