禁用并指定 Html.DropDownList 的默认选择
Disable & Specify default selection for Html.DropDownList
我正在开发一个 asp.net mvc web 应用程序,在操作方法中我定义了以下 select 列表:-
ViewBag.ApproverID = new SelectList(db.staffs.ToList(), "ApproverID", "Name");
然后在视图上我试图禁用下拉列表如下:-
@Html.DropDownList("ApproverID",String.Empty,new { @disabled = "disabled" } )
但似乎下拉列表不允许这样做,并且会在视图中引发语法错误?有人可以提出建议吗?
谢谢
您使用了 DropDownList
的错误重载。需要
@Html.DropDownList("ApproverID", null, string.Empty, new { disabled= "disabled" })
但是你应该使用强类型的助手并绑定到模型 属性 以便它可以绑定到 postback
型号
public int ApproverID { get; set; }
控制器
ViewBag.ApproverList = new SelectList(db.staffs.ToList(), "ApproverID", "Name");
查看
@Html.DropDownListFor(m => m.ApproverID, (SelectList)ViewBag.ApproverList, "-Please select-", new { disabled = "disabled" })
如果您在控制器中设置 属性 ApproverID
的值并且它与选项的值之一相匹配,它将被 selected.
但是为什么要禁用下拉列表? - 你显然不能 select 任何东西并且它不会 post 返回所以模型 属性 将为空(并且可能导致 ModelState
错误)。如果您只想显示值,请使用 @Html.DisplayFor()
和 @Html.HiddenFor(m => m.ApproverID)
,这样值 posts back
我正在开发一个 asp.net mvc web 应用程序,在操作方法中我定义了以下 select 列表:-
ViewBag.ApproverID = new SelectList(db.staffs.ToList(), "ApproverID", "Name");
然后在视图上我试图禁用下拉列表如下:-
@Html.DropDownList("ApproverID",String.Empty,new { @disabled = "disabled" } )
但似乎下拉列表不允许这样做,并且会在视图中引发语法错误?有人可以提出建议吗? 谢谢
您使用了 DropDownList
的错误重载。需要
@Html.DropDownList("ApproverID", null, string.Empty, new { disabled= "disabled" })
但是你应该使用强类型的助手并绑定到模型 属性 以便它可以绑定到 postback
型号
public int ApproverID { get; set; }
控制器
ViewBag.ApproverList = new SelectList(db.staffs.ToList(), "ApproverID", "Name");
查看
@Html.DropDownListFor(m => m.ApproverID, (SelectList)ViewBag.ApproverList, "-Please select-", new { disabled = "disabled" })
如果您在控制器中设置 属性 ApproverID
的值并且它与选项的值之一相匹配,它将被 selected.
但是为什么要禁用下拉列表? - 你显然不能 select 任何东西并且它不会 post 返回所以模型 属性 将为空(并且可能导致 ModelState
错误)。如果您只想显示值,请使用 @Html.DisplayFor()
和 @Html.HiddenFor(m => m.ApproverID)
,这样值 posts back