我正在尝试使用来自数据库的选定值(开放时间)来显示办公室开放时间的下拉列表,但它没有选择值:
型号:
public class ScheduleViewModel
{
public int Id { get; set; }
public int OpenHour { get; set; }
}
一天中所有小时的下拉列表:
private IEnumerable<SelectListItem> ScheduleHoursDropDownList()
{
List<SelectListItem> hours = new List<SelectListItem>();
for (int i = 0; i <= 23; i++)
{
hours.Add(new SelectListItem
{
Text = i.ToString("00"),
Value = i.ToString("00")
});
}
return hours;
}
查看:
@Html.DropDownListFor(m => m.Schedule[i].OpenHour, Model.ScheduleHours)
我在数据库中有整数9,但是当我提供下拉列表时它没有被选中,为什么?
由于
答案 0 :(得分:2)
我在数据库中有整数9,但是当我提供下拉列表时它没有被选中,为什么?
因为9
和09
是两个不同的字符串。因此,请确保您完全匹配:
hours.Add(new SelectListItem
{
Text = i.ToString("00"),
Value = i.ToString(),
});
请注意,对于Value
的{{1}}属性,您不应该应用SelectListItem
字符串格式。
另外,请确保为此视图提供服务的控制器操作有效地将00
的值设置为视图模型上的9
整数属性。
更新:
可能还需要在视图中调用这样的帮助程序:
Schedule[i].OpenHour
答案 1 :(得分:0)
您希望选择哪个值,然后添加属性selected=true
hours.Add(new SelectListItem
{
Text = i.ToString("00"),
Value = i.ToString(),
Selected = true
});
运行页面时将选择以上值。