Vb.net 无法将2个表绑定到viewModel并发送到视图

Vb.net 无法将2个表绑定到viewModel并发送到视图,vb.net,entity-framework,model-view-controller,data-binding,viewmodel,Vb.net,Entity Framework,Model View Controller,Data Binding,Viewmodel,表1。商业 表2。商品服务 我想在一个视图中显示两个表数据 我想在视图上显示商品业务详细信息。非常基本的企业名称、地址、etcc MerchantServices是企业拥有的服务列表 所以我首先创建了viewModel Public Class MerchantServicesModel Public Property MerchantViewModel() As Merchant Get Return _Merchant End Get Set(val

表1。商业 表2。商品服务

我想在一个视图中显示两个表数据

我想在视图上显示商品业务详细信息。非常基本的企业名称、地址、etcc

MerchantServices是企业拥有的服务列表

所以我首先创建了viewModel

Public Class MerchantServicesModel

Public Property MerchantViewModel() As Merchant
    Get
        Return _Merchant
    End Get
    Set(value As Merchant)
        _Merchant = value
    End Set
End Property
Private _Merchant As Merchant



Public Property ServiceViewModel() As IEnumerable(Of MerchantService)

    Get
        Return _Services
    End Get
    Set(value As IEnumerable(Of MerchantService))
        _Services = value
    End Set
End Property
Private _Services As MerchantService

End Class
Function Index(id As Integer) As ActionResult
    Dim db As New MerchantEntities

    Dim MerchantDetails As New MerchantServicesModel
    MerchantDetails.MerchantViewModel = db.Merchants.Find(id)

    MerchantDetails.ServiceViewModel = (From m In db.MerchantServices
                           Where m.MerchantID = id
                           Select m).ToList()


    Return View(MerchantDetails)


End Function


My View

@ModelType MerchantServicesModel 

@Code

Layout = "~/Views/Shared/_Layout.vbhtml"

End Code


@Html.DisplayFor(Function(model) model.MerchantViewModel.BusinessName)

@For Each item In Model.ServiceViewModel

@Html.DisplayFor(Function(model) item.ServiceName)

Next
在我的控制器中,我将两个表绑定到viewModel

Public Class MerchantServicesModel

Public Property MerchantViewModel() As Merchant
    Get
        Return _Merchant
    End Get
    Set(value As Merchant)
        _Merchant = value
    End Set
End Property
Private _Merchant As Merchant



Public Property ServiceViewModel() As IEnumerable(Of MerchantService)

    Get
        Return _Services
    End Get
    Set(value As IEnumerable(Of MerchantService))
        _Services = value
    End Set
End Property
Private _Services As MerchantService

End Class
Function Index(id As Integer) As ActionResult
    Dim db As New MerchantEntities

    Dim MerchantDetails As New MerchantServicesModel
    MerchantDetails.MerchantViewModel = db.Merchants.Find(id)

    MerchantDetails.ServiceViewModel = (From m In db.MerchantServices
                           Where m.MerchantID = id
                           Select m).ToList()


    Return View(MerchantDetails)


End Function


My View

@ModelType MerchantServicesModel 

@Code

Layout = "~/Views/Shared/_Layout.vbhtml"

End Code


@Html.DisplayFor(Function(model) model.MerchantViewModel.BusinessName)

@For Each item In Model.ServiceViewModel

@Html.DisplayFor(Function(model) item.ServiceName)

Next
我在想,商业不是一个完整的列表,只是特定业务的细节 但是MerchantServices是一个IEnumerable列表,所以我创建了一个表格和样式

现在我得到的错误是

其他信息:无法将类型为“System.Collections.Generic.List`1[VBClassMVC.MerchantService]”的对象强制转换为类型为“VBClassMVC.MerchantService”

我是遗漏了什么,还是绑定不正确


谢谢。

我所能做的就是解决这个问题。这是更新后的ViewModel

 Public Property ServiceViewModel() As IEnumerable(Of MerchantService)

    Get
        Return _Services
    End Get
    Set(value As IEnumerable(Of MerchantService))
        _Services = value
    End Set
End Property
Private _Services As IEnumerable(Of MerchantService)
我需要将(MerchantService的)IEnumerable添加到_Services私有变量中