【发布时间】:2013-04-10 08:02:18
【问题描述】:
在视图中显示项目列表时出现问题。无法将其从 ItemStore.Item 转换为 IEnumerable,我还在 list.vbhtml 中添加了“@Method List(Of ItemStore.Item)”,并且无法显示传入字典的项目,因为它的类型为“ Item Store.Item',但此字典需要类型为“System.Collections.Generic.List`1[Item Store.Item]”的模型项。
****CatalogueController**** ******
Function About() As ActionResult
Return View()
End Function
Function Index() As String
Return "Index"
End Function
Function List(search As String) As ActionResult
Dim model As New SQLItemModel
Dim items = model.SelectById(search)
Return View(items)
End Function
******List.vbhtml ***********
The search text is @ViewBag.Message
@For Each item In Model
@item.ID
*********SQLItemModel.vb ***********
Private connectionString As String = My.Settings.sqlconnection
Public Function SelectAll() As ICollection(Of Item)
Dim items As New List(Of Item)
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim cmd As New SqlCommand("select * from item", connection)
Dim reader As SqlDataReader = cmd.ExecuteReader()
While reader.Read()
items.Add(GetItem(reader))
End While
End Using
Return items
End Function
Public Function SelectById(ItemID As Integer) As Item
Dim item As Item = Nothing
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim cmd As New SqlCommand()
cmd.CommandText = "select * from Tbl_Items where ID = @ID"
cmd.Connection = connection
cmd.Parameters.Add(New SqlParameter("ID", ItemID))
Dim reader As IDataReader = cmd.ExecuteReader()
If reader.Read() Then
Item = GetItem(reader)
End If
End Using
Return Item
End Function
Private Function GetItem(reader As SqlDataReader) As Item
Dim ID = reader("ID")
Dim ProductCode = reader("ProductCode")
Dim Brand = reader("Brand")
Dim Description = reader("Description")
Dim Colour = reader("Colour")
Dim Finish = reader("Finish")
Dim Type = reader("Type")
Dim Size = reader("Size")
Dim Unit = reader("Unit")
Return New Item(ID, ProductCode, Brand, Description, Colour, Finish, Type, Size, Unit)
End Function
【问题讨论】:
-
那么,
Item是否实现了IEnumerable?
标签: asp.net-mvc vb.net