我试图将下拉列表与强类型的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-。
有人可以帮我解决这个问题吗?
答案 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;" })
更新: 在评论部分要求更新新下拉菜单。
@Html.DropDownListFor(x => x.WeeklyStatus, new SelectList(Model.WeeklyStatus, "Value", "Text", item.WeeklyStatus), new { @id = "Name"})
工作正常。它选择取决于item.WeeklyStatus
值的选项。如果该值与给定的选项不匹配,则默认情况下选择第一个选项。
DEMO