我想創建一個包含2項一個DropDownList:部分名稱和NSN。如何使用靜態項目創建ASP.NET MVC HTML.DropDownList?
此下拉列表將用作搜索框控件的一部分,該控件將作爲母版頁的一部分進行部分渲染。用戶將輸入他們的搜索文本,並從下拉列表中選擇部件名稱或NSN,然後單擊提交。該查詢將返回基於搜索文本的結果。我已經定義PartsController和這裏的它的相關部分:
Function Search(ByVal searchtext As String, ByVal SearchType As String) As ActionResult
Dim searchlist As List(Of String) = New List(Of String)
searchlist.Add("Part Name")
searchlist.Add("NSN")
ViewData("searchlist") = New SelectList(searchlist)
If SearchType = "PARTNAME" Then
Dim SearchResult = From p In _entities.PartList _
Where p.PARTNAME = searchtext _
Select p
Return View(SearchResult)
End If
If SearchType = "NSN" Then
Dim SearchResult = From p In _entities.PartList _
Where p.NSN = searchtext _
Select p
Return View(SearchResult)
End If
Return View("UnknownType")
End Function
PartsForm.ascx定義如下:
<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl(Of DielToolMVC.PartList)" %>
<%=Html.ValidationSummary("Please correct the errors and try again")%>
<% Using (Html.BeginForm("Search", "PartsController"))%>
<fieldset>
<p>
<label for="Parts">Please enter a part description or NSN.</label>
<%=Html.TextBox("searchtext") %>
<%=Html.DropDownList("searchlist")%>
<%=Html.ValidationMessage("Part Name or NSN", "*")%>
</p>
<p>
<input type="submit" value="Search" />
</p>
</fieldset>
<% End Using%>
當調試時,收到以下錯誤消息:
沒有類型爲'IEnumerable'的鍵'searchlist'的ViewData項目。
我有點困惑,因爲MSDN文檔演示類似的例子。但是,在遵循這些例子之後,我得到這個錯誤。我忽略了什麼?
感謝傑夫。我打算將控件渲染爲母版頁的一部分。代碼是最有幫助的。我很驚訝VB中缺乏dropdownlist示例,這些示例很容易找到。非常感謝您的幫助! – SidC 2009-12-14 18:38:16