您可以使用
创建下拉列表@Html.DropDownListFor(model => model.SelectedId, model.DropDownItems);
但是DropDownListFor从哪里获取传递给model => model.SelectedId
lambda的值?
答案 0 :(得分:2)
SelectedId只是模型中字段的整数。
使用
从控制器传入模型return View(myModel);
模型可以在顶部的视图中定义
@model mymodelnamespace.RoomBookingInsert
因此,下拉框的值将设置为模型中的SelectedId
字段。
例如,正确的字段名称为RoomNo
,如果能更好地澄清它。
@Html.DropDownListFor(model => model.RoomNo, model.Rooms);
只要model.DropDownItems
(或我的示例中为model.Rooms
)包含具有该属性值的项目,它就会将其设置为列表中的所选项目作为默认值。
修改强>
如果您使用的是viewbag而不是模型,请使用DropDownList
。 (每个输入都有一个for
扩展名,用于模型)
@Html.DropDownList("RoomNo",
new SelectList(ViewBag.Rooms as System.Collections.IEnumerable ?? Enumerable.Empty<SelectListItem>(), "RoomNo", "RoomName"),
new { @value = @ViewBag.RoomNo})
上面的内容创建了一个标识为RoomNo
,
并使用SelectList
,如果为null,则默认为空。定义所显示的值和文本的字段设置在选择列表参数的末尾。
最后一位将默认值设置为@ViewBag.RoomNo
的内容。
您还可以在控制器中创建选择列表,然后只需将下拉选项设置为viewbag.myselectList
实体。