自动选择“ Dropdownlist”在MVC中不起作用

时间:2019-06-25 10:06:25

标签: c# .net

我试图将下拉列表与强类型的SelectListItem绑定。我给Text和Value一样,就像来自数据库的字符串值一样。 下面的代码我正在尝试

@Html.DropDownListFor(x => item.Name, Model.Names, "Please select", new { @id = "ddrName", @class = "form-control", @style = "width:200px;" })

item.Name包含特定学生/记录的名称。 我已将列表绑定如下:

 obj.Names = new List<SelectListItem>
            {
                new SelectListItem { Value="Rajesh", Text="Rajesh" },
                 new SelectListItem { Value ="Vishal", Text="Vishal" },
                 new SelectListItem { Value ="Sarath", Text="Sarath" },
                 new SelectListItem { Value ="Sudhir", Text="Sudhir" }
            };

public List<SelectListItem> Names { get; set; }

我正在从数据库中获取数据,如下所示。

  

拉杰什       维沙尔       萨拉斯       Sudhir

但是我需要使页面显示带有某些选择值的下拉列表。

默认情况下,即使列表中存在该值,我也只能得到--Select-。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

在显示数据时在剃刀视图中使用这些属性 Text =“ Active”,Value =“ True”,Selected = true

答案 1 :(得分:1)

您需要在DropDownListFor中添加SelectList(Model.Names,“ Value”,“ Text”)参数。

然后您要显示“请选择”

@Html.DropDownListFor(x => x.Name, new SelectList(Model.Names, "Value", "Text"), "Please select", new { @id = "Name", @class = "form-control", @style = "width:200px;" })   

如果不想显示“请选择”,则

@Html.DropDownListFor(x => x.Name, new SelectList(Model.Names, "Value", "Text"), new { @id = "Name", @class = "form-control", @style = "width:200px;" })    

如果要选择“ Vishal”,则

@Html.DropDownListFor(x => x.Name, new SelectList(Model.Names, "Value", "Text","Vishal"), new { @id = "Name", @class = "form-control", @style = "width:200px;" })   

DEMO

更新: 在评论部分要求更新新下拉菜单。

@Html.DropDownListFor(x => x.WeeklyStatus, new SelectList(Model.WeeklyStatus, "Value", "Text", item.WeeklyStatus), new { @id = "Name"})

工作正常。它选择取决于item.WeeklyStatus值的选项。如果该值与给定的选项不匹配,则默认情况下选择第一个选项。 DEMO