selectList的选定值究竟是如何工作的
本文关键字:何工作 工作 究竟 selectList | 更新日期: 2023-09-27 18:07:04
我需要创建一个下拉列表,我通过创建一个基于模型的新SelectList来实现这一点。下面是我要做的:
@Html.DropDownListFor(model=>model.SelectedStudio, new SelectList(Model.Studios, "Id", "Name", Model.Studio)
我从类签名中看到最后一个参数是objectselectedvalue。我现在已经尝试了许多变化,试图在那里传递一个字符串,一个对象等,但当我编译程序时,下拉列表的选择值永远不会设置为我想要的。
谁能解释一下这是怎么回事?
编辑:我不知道这是否重要,但工作室的Id是ObjectId类型(从MongoDB c#驱动程序)
我认为你没有为新选择列表设置选定值
你的代码应该是 @Html.DropDownListFor(model=>model.SelectedStudio, new SelectList(Model.Studios, "Id", "Name", [Defualt value])
不给出错误的原因,因为它是对象。你在设置IEnumerable列表。所以它是物体。请看下面的链接
http://msdn.microsoft.com/en-us/library/dd492553 (v = vs.118) . aspx
试试这个:
@Html.DropDownListFor(model=>model.SelectedStudio, new SelectList(Model.Studios, "Id", "Name", Model.Studio.Id)
这是在下拉菜单中保持选定值的方法
@Html.DropDownList("statussearch", new List<SelectListItem>
{
new SelectListItem { Text = "text1", Value = "1", Selected = Studio.IsSelected.HasValue ? Studio.IsSelected.Value : false},
new SelectListItem { Text = "text2", Value = "2"},
new SelectListItem { Text = "text3", Value = "3"},
}, "Select Status")
IsSelected是数据库中的一个字段,它表示要选择的值。
这将很好地满足您的需求
@foreach (var value in studios)
{ @Html.DropDownList("statussearch", new List<SelectListItem>
{new SelectListItem { Text =value.prop1, Value = "1" },new SelectListItem { Text = value.prop2, Value = "2"},new SelectListItem { Text = value.prop3, Value = "3"},}, value.proptobeselected)}