如何在 MVC5 视图中显示嵌套数据?
How to display nested data in MVC5 view?
我有一份公司清单,这些公司有一个项目清单。我想像这样显示所有公司和所有项目:
Company1
Project1
Project2
Company2
Project3
Project4
如何使用 asp.net MVC5 轻松完成此操作?
编辑:
我需要一个具体的视图示例,以便了解如何创建控制器和模型。这是我的控制器和模型。
Public Class CompanyModel
Private _title As String
Private _projects As New List(Of Project)
Public Property title As String
Get
Return _title
End Get
Set(value As String)
_title = value
End Set
End Property
Public Property projects As List(Of Project)
Get
Return _projects
End Get
Set(value As List(Of Project))
_projects = value
End Set
End Property
End Class
和控制器功能:
Function Index() As ActionResult
Dim Companies As New List(Of CompanyModel)
Using db As New ProjectDBDataContext(ConnectionStrings("redacted").ConnectionString)
Dim companyList = (From c In db.Companies Select c)
For Each c In companyList
Dim projects = (From p In db.Projects Where p.companyID = c.id Select p).ToList
Companies.Add(New CompanyModel With {.title = c.title, .projects = projects})
Next
End Using
Return View(Companies)
End Function
然后我就使用了 Chris 的示例代码作为视图。
您应该能够在视图中使用 Razor 使用嵌套的 For Each 来完成此操作。
编辑:可能的解决方案:
查看:
@foreach (var company in Model) {
@company.Name
@Html.Partial("_Projects", company.Projects)
}
_项目部分视图:
@foreach (var project in Model) {
@project.Name
}
我有一份公司清单,这些公司有一个项目清单。我想像这样显示所有公司和所有项目:
Company1
Project1
Project2
Company2
Project3
Project4
如何使用 asp.net MVC5 轻松完成此操作?
编辑: 我需要一个具体的视图示例,以便了解如何创建控制器和模型。这是我的控制器和模型。
Public Class CompanyModel
Private _title As String
Private _projects As New List(Of Project)
Public Property title As String
Get
Return _title
End Get
Set(value As String)
_title = value
End Set
End Property
Public Property projects As List(Of Project)
Get
Return _projects
End Get
Set(value As List(Of Project))
_projects = value
End Set
End Property
End Class
和控制器功能:
Function Index() As ActionResult
Dim Companies As New List(Of CompanyModel)
Using db As New ProjectDBDataContext(ConnectionStrings("redacted").ConnectionString)
Dim companyList = (From c In db.Companies Select c)
For Each c In companyList
Dim projects = (From p In db.Projects Where p.companyID = c.id Select p).ToList
Companies.Add(New CompanyModel With {.title = c.title, .projects = projects})
Next
End Using
Return View(Companies)
End Function
然后我就使用了 Chris 的示例代码作为视图。
您应该能够在视图中使用 Razor 使用嵌套的 For Each 来完成此操作。
编辑:可能的解决方案:
查看:
@foreach (var company in Model) {
@company.Name
@Html.Partial("_Projects", company.Projects)
}
_项目部分视图:
@foreach (var project in Model) {
@project.Name
}