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#驱动程序)

selectList的选定值究竟是如何工作的

我认为你没有为新选择列表设置选定值

你的代码应该是
 @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)}