2013-02-13 62 views
1

我是MVC的新手,正在從事已經存在的項目。我只是試圖填充下拉列表以允許更改訂單。當頁面加載時,我需要下拉選擇的值集。MVC DropDownList幫助 - 選擇不工作

視圖上的模型只有幾個屬性,然後是迭代的類型列表以在頁面上生成數據。這些項目是什麼包含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> 

回答

0

您需要設置您用於在頁面加載時保留下拉值的屬性。

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 

%> 
+0

感謝reply.So如果我把這個誰做我得到的控制器在我選擇listitem列表的選項? – bline22 2013-02-13 21:11:38