我是 MVC 的新手,我无法理解一段代码。我创建了一个新控制器以及所有 CRUD 方法和视图 - 由 Visual Studio 自动生成 - 我无法理解代码的一部分。
看,在控制器中,它从数据库中设置了一个 SelectList 并将其放入 ViewBag 中,如下所示: Controller
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)
这是我的疑问。MVC 如何知道在哪里可以找到正确的列表而不指定 ViewBag?