mvc 5 从具有空白值的表中选择下拉列表
本文关键字:选择 下拉列表 空白 mvc | 更新日期: 2023-09-27 18:32:26
我正在使用下面的代码创建一个下拉列表
控制器
ViewBag.Id= new SelectList(db.TableName.OrderBy(x => x.Name),"Id","Name")
视图
@Html.DropDownList("Id", null, htmlAttributes: new { @class = "form-control" })
我的问题是我如何修改SelectList
以添加空白项目,以便自动为DropDownList
添加一个空白项目。
谢谢。
使用接受optionLabel
的重载之一
@Html.DropDownListFor(m => m.ID, (SelectList)ViewBag.MyList, "Please select", new { @class = "form-control" })
或者,如果您不想使用强类型方法
@Html.DropDownList("ID", (SelectList)ViewBag.MyList, "Please select", new { @class = "form-control" })
这将添加第一个选项,其中包含第三个参数中指定的文本和null
值
<option value="">Please Select</option>
您可以使用此重载:
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, string optionLabel, object htmlAttributes);
其中optionLabel
是默认空项的文本。
在我的项目中,这些工作:
控制器
ViewBag.TagHfoFlagId= new SelectList(db.TableName.OrderBy(x => x.Name),"Id","Name")
视图
@Html.DropDownList("TagHfoFlagId", null,"--Select Name--", htmlAttributes: new { @id = "tags" })
接受的答案确实有效,但它会在视图的下拉列表中显示默认 (null) 值,即使您之前已经选择一个。如果您希望在渲染视图后,已选择的值在下拉列表中显示自身,请改用以下内容:
控制器
ViewBag.Fk_Id_Parent_Table = new SelectList(db.Parent_Table, "Id", "Name", Child_Table.Fk_Id_Parent_Table);
return View(ChildTable);
视图
@Html.DropDownList(
"Fk_Id_Parent_Table",
null,
"Not Assigned",
htmlAttributes: new { @class = "form-control" }
)