MVC DropDownList帮助 - 选择不起作用

时间:2013-02-13 20:09:23

标签: c# asp.net-mvc vb.net

我是MVC的新手并且正在处理一个已经存在的项目。我只是想填写一个下拉列表以允许更改订单。当页面加载时,我需要下拉选择的值集。

视图上的模型只有几个属性,然后是一个迭代的类型列表,用于在页面上生成数据。这些项目包含displayorder属性

我的问题是关于订单。此视图用于更改页面上记录的显示顺序。所以有一个检查,看看最大的displayorder是基于类型的,然后selectlistitmes被添加到下拉列表中。下拉列表填充正常,但您可以看到所选属性也已设置,但在呈现页面时这不起作用。我总是显示第一项。我认为问题在于:<%= Html.DropDownListFor(Function(x)x.Location,Options)%>

我认为我想要的是x.DisplayOrder(item包含displayorder属性),但这不是模型的一部分。它是我们正在迭代的列表的一部分。

任何帮助将不胜感激。

<td>
<%Dim Options As New List(Of SelectListItem)%>
<%For intDisplayOrder As Integer = 1 To Model.ReviewTypes(item.ReviewType)
Dim newSelectedItem As New SelectListItem
newSelectedItem.Text = intDisplayOrder.ToString()
newSelectedItem.Value = intDisplayOrder.ToString()

If intDisplayOrder = item.DisplayOrder Then
newSelectedItem.Selected = True

End If

Options.Add(newSelectedItem)
Next

%>

<%=Html.DropDownListFor(Function(x) x.Location, Options)%>

</td>

2 个答案:

答案 0 :(得分:0)

您需要设置用于在页面加载时保留下拉列值的属性。

答案 1 :(得分:0)

我认为您需要将此部分放入控制器中,并使用formCollection.DisplayOrder设置下拉列表的选定项目

<%Dim Options As New List(Of SelectListItem)%>
<%For intDisplayOrder As Integer = 1 To Model.ReviewTypes(item.ReviewType)
Dim newSelectedItem As New SelectListItem
newSelectedItem.Text = intDisplayOrder.ToString()
newSelectedItem.Value = intDisplayOrder.ToString()

If intDisplayOrder = item.DisplayOrder Then
newSelectedItem.Selected = True

End If

Options.Add(newSelectedItem)
Next

%>