当我使用 DropDownListFor 时,所选项目不显示

2023-12-11

我使用以下命令生成下拉列表:

@for (var index = 0; index < Model.AdminSummaries.Count(); index++) 
            { 
            <div class="rep_tr0"> 
                <div class="rep_td0"> 
                    @Html.DropDownListFor(x => Model.AdminSummaries[index].Status, 
                       AdminStatusReference.GetAdminStatusOptions(),
                       new { id = string.Format("Status_{0}",index ) })
                 </div> 
            </div>
            }

这是它生成的 HTML:

<select id="Status_1" name="AdminSummaries[1].Status"><option value="1">Released</option>
<option value="2">Review</option>
<option value="3">New</option>
</select>

这是提供状态选项的类。

public static class AdminStatusReference
{

    public static IEnumerable<SelectListItem> GetAdminStatusOptions()
    {
        return new[]
            {
                new SelectListItem { Value = "1", Text = "Released"  },
                new SelectListItem { Value = "2", Text = "Review" },
                new SelectListItem { Value = "3", Text = "New" }
            };
    }

}

一切正常,除了它没有正确选择项目。没有带有“选定”的选项来匹配 AdminSummaries 中的数据。

我怎样才能选择正确的选择列表项?

只是为了澄清这一点。我的问题是,如果有一个状态值为 3 的数据记录,那么当我查看屏幕时,我会看到一个显示“释放”一词的选择列表。

我需要的是选择列表显示与数据值相对应的文本。


这是更准确的答案

public static class AdminStatusReference 
{ 
    public static IEnumerable<SelectListItem> GetAdminStatusOptionsFor(AdminSummaries arg) 
    { 
        var options = new[] 
            { 
                new SelectListItem { Value = "1", Text = "Released" }, 
                new SelectListItem { Value = "2", Text = "Review" }, 
                new SelectListItem { Value = "3", Text = "New" } 
            }; 
        options.First(o=> o.Value == arg).Selected = true;
        return options; 
    } 
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我使用 DropDownListFor 时,所选项目不显示 的相关文章

随机推荐