在asp.netmvc中获取下拉ListFor显示选中的值
Get the drop downListFor show the selected value in asp.net mvc
我有一个像下面这样的 DropDownListFor
@Html.DropDownListFor(m => m._dayOfWeek, new SelectList(Model._dayOfWeekList, "Value", "Text"))
in Model
_dayOfWeek is string
_dayOfWeekList is List<selectlistItem>
现在 dayOfWeekList
正在控制器中创建,它可以有很多值,但最多七个值
值 - 0 文本 - 星期一
值 - 1 个文本 - 星期二
值 - 2 文本 - 星期三
等等...
现在我可以在 _dayOfWeek 字符串中分配值或文本 - 取决于中的值
_dayOfWeek
--- 下拉菜单应该能够显示该选项
加载页面时,下拉列表始终默认显示星期一。
如何让下拉菜单显示 _dayOfWeek
字符串中的那个选项
首先,不要创建新的 SelectList
。 Razor 可以自己处理,最好让它处理。 DropDownListFor
只需要 IEnumerable<SelectListItem>
,您已经拥有:
@Html.DropDownListFor(m => m._dayOfWeek, Model._dayOfWeekList)
其次,分配的值是根据ModelState
确定的,它由Request
、ViewData
/ViewBag
的值组成,作为最后的手段, Model
。因此,您应该确保您的视图模型为 属性 和 设置了适当的值,并与您的 List<SelectListItem>
中可能的选项值保持一致。然后,确保您在接受 _dayOfWeek
之类的参数与您的操作方法或将 ViewBag._dayOfWeek
之类的参数设置为某个值之间没有任何冲突。在这两种情况下,大小写无关紧要,因此 _dayOfWeek
== _DayOfWeek
== _DAYOFWEEK
.
好的,我得到了答案。不使用 viewbag 或 viewdata
foreach (var item in model._dayOfWeekList)
{
if (item.Text == model._dayOfWeek)
{
item.Selected = true;
}
}
也感谢其他人的时间
我有一个像下面这样的 DropDownListFor
@Html.DropDownListFor(m => m._dayOfWeek, new SelectList(Model._dayOfWeekList, "Value", "Text"))
in Model
_dayOfWeek is string
_dayOfWeekList is List<selectlistItem>
现在 dayOfWeekList
正在控制器中创建,它可以有很多值,但最多七个值
值 - 0 文本 - 星期一
值 - 1 个文本 - 星期二
值 - 2 文本 - 星期三
等等...
现在我可以在 _dayOfWeek 字符串中分配值或文本 - 取决于中的值
_dayOfWeek
--- 下拉菜单应该能够显示该选项
加载页面时,下拉列表始终默认显示星期一。
如何让下拉菜单显示 _dayOfWeek
字符串中的那个选项
首先,不要创建新的 SelectList
。 Razor 可以自己处理,最好让它处理。 DropDownListFor
只需要 IEnumerable<SelectListItem>
,您已经拥有:
@Html.DropDownListFor(m => m._dayOfWeek, Model._dayOfWeekList)
其次,分配的值是根据ModelState
确定的,它由Request
、ViewData
/ViewBag
的值组成,作为最后的手段, Model
。因此,您应该确保您的视图模型为 属性 和 设置了适当的值,并与您的 List<SelectListItem>
中可能的选项值保持一致。然后,确保您在接受 _dayOfWeek
之类的参数与您的操作方法或将 ViewBag._dayOfWeek
之类的参数设置为某个值之间没有任何冲突。在这两种情况下,大小写无关紧要,因此 _dayOfWeek
== _DayOfWeek
== _DAYOFWEEK
.
好的,我得到了答案。不使用 viewbag 或 viewdata
foreach (var item in model._dayOfWeekList)
{
if (item.Text == model._dayOfWeek)
{
item.Selected = true;
}
}
也感谢其他人的时间