ASP.NET MVC4中@model使用多个类型实例的方法
时间: 2024-01-24 15:16:43 浏览: 43
在ASP.NET MVC4中,使用@model关键字指定视图使用的模型类型。如果你需要在同一个视图中使用多个模型类型的实例,可以使用ViewModel的方式。
ViewModel是一个模型类型,它封装了所有需要在视图中显示的数据。在创建ViewModel时,你可以使用多个模型类型的实例作为其属性,然后在视图中使用ViewModel来访问这些属性。
以下是一些创建ViewModel的方法:
方法1:使用匿名类型
```csharp
@model IEnumerable<Department>
@{
ViewBag.Title = "Department List";
}
@foreach (var dept in Model)
{
<h2>@dept.Name</h2>
<div>Employees:</div>
<ul>
@foreach (var emp in dept.Employees)
{
<li>@emp.Name</li>
}
</ul>
}
@{
var model = new
{
Departments = Model,
Employees = Model.SelectMany(d => d.Employees)
};
}
<div>Total Employees: @model.Employees.Count()</div>
```
方法2:使用自定义ViewModel类
```csharp
public class DepartmentListViewModel
{
public IEnumerable<Department> Departments { get; set; }
public IEnumerable<Employee> Employees { get; set; }
}
@model DepartmentListViewModel
@foreach (var dept in Model.Departments)
{
<h2>@dept.Name</h2>
<div>Employees:</div>
<ul>
@foreach (var emp in Model.Employees.Where(e => e.DepartmentId == dept.Id))
{
<li>@emp.Name</li>
}
</ul>
}
<div>Total Employees: @Model.Employees.Count()</div>
```
以上是两种常见的方法,你可以根据需要选择最适合你的方法。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)