【发布时间】:2015-12-28 19:59:25
【问题描述】:
我有一个要绑定到下拉列表的数组。代码如下:
@for (int i = 1; i <= 5; i++)
{
@for (int j = 1; j <= 7; j++)
{
@Html.DropDownListFor(m => @Model.Periods, new SelectList(@Model.Items, "Id", "Title", @Model.ScheduleList[i, j]))
}
}
@Model.Periods 是一个普通的空整数数组。 @Model.ScheduleList 是一个二维整数数组,包含绑定时应选择的选项的值。 如果我更换:
@Model.Periods
与:
@Model.Periods[i*10 + j]
正在显示选定的值,但生成的 select 输入的名称例如 Periods[34],而不仅仅是 Periods,我在我的视图模型中得到 null回发。 所以我的问题是:如何将一个普通数组绑定到下拉列表并将所选值与另一个数组一起传递?
【问题讨论】:
-
很难理解你想要达到什么结果,你想要 5 * 7 = 35 个下拉菜单?
-
是的,我想要将 35 个下拉菜单保存到数据库中,然后用户可以对其进行编辑。在@Model.ScheduleList 我有来自数据库的值,但我无法更改生成的选择输入以显示默认第一个元素的插入
-
@Model.Periods[i*10 + j]'几乎' 正确 - 要回发该数据,您必须使用从 Periods[0] 到 Periods[34] 的所有值,如果有任何 Periods[X] (其中 X 包括从 0 到 34)将丢失,您将不会收到正确的数据。数组的索引也应该严格从 0 开始。所以@Model.Periods[(i-1)*10 + (j-1)]应该没问题。 -
你完全正确!也许您可以将其写在单独的答案中,以便我可以标记它:)
标签: asp.net-mvc