Я хотел бы создать DropDownList, содержащий 2 элемента: Имя детали и NSN .
Этот выпадающий список будет использоваться как часть элемента управления окна поиска, которое будет частичным отображением как часть моей главной страницы. Пользователь введет свой текст поиска и выберет либо Part Name или NSN из выпадающего списка, и нажмите Submit. Запрос будет возвращать результаты, основанные на тексте поиска. Я определил 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%>
При отладке я получаю следующее сообщение об ошибке:
Нет элемента ViewData с ключом 'searchlist' типа 'IEnumerable'.
Я немного запутался, поскольку документация MSDN демонстрирует подобные примеры. Однако после следующих примеров я получаю эту ошибку. Что я пропускаю?