繁体   English   中英

selectList的选定值到底如何工作?

[英]How exactly does the selected value of a selectList work?

我需要创建一个下拉列表,并通过基于模型创建一个新的SelectList来做到这一点。 这是我尝试执行的操作:

@Html.DropDownListFor(model=>model.SelectedStudio, new SelectList(Model.Studios, "Id", "Name", Model.Studio)

我从类签名中看到,最后一个参数是对象selectedValue。 我现在尝试了许多变体,尝试在其中传递字符串,对象等,但是当我编译程序时,下拉列表的选定值从未设置为我想要的值。

谁能解释这是如何工作的?

编辑:我不知道这是否重要,但Studio的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是数据库中wch状态中要选择的wch值的字段。

这将很好地满足您的要求

    @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)} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM