我有一个来自控制器上此代码的MVC3下拉列表。
private SelectList progCodesList = new SelectList(new[] { "Description", "Requirements", "Development", "Testing", "Documentation" });
如何填充存储库中的字段,以动态构建下拉列表? 谢谢。
答案 0 :(得分:1)
假设您在数据库表中有progCodes
,其中progCode包含文本,progCodeId具有唯一ID,那么您可以将表读入SelectListItem
列表,如下所示:
private DbContext _db = new DbContext();
var progCodesList = _db.progCodes.Select(x => new SelectListIem()
{
Text = x.progCode,
value = x.progCodeId
}).ToList();
然后,您可以使用强类型模型或使用ViewBag将此List<SelectListItem>
传递给您的视图。
答案 1 :(得分:0)
您需要使用以下内容将progCodesList传递给控制器方法中的ViewBag:
ViewBag.ProgCodeId = progCodesList;
然后在您看来,您需要填写下拉列表:
<div class="editor-label">
@Html.LabelFor(model => model.ProgCodeId, "ProgCode")
</div>
<div class="editor-field">
@Html.DropDownList("ProgCodeId", String.Empty)
@Html.ValidationMessageFor(model => model.ProgCodeId)
</div>