如何在视图页面中显示两个不同的列表?

时间:2015-08-19 11:01:34

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

我是ASP MVC的新手,我有两个动作方法列表第一个列表包含任务详细信息,第二个列表包含员工ID我希望将这两个列表发送到带有分页的视图页面。我的问题是我无法发送两个列表都可以查看

public ActionResult DisplayProjectTask(string projectId, int? page)
{            
    List<Task> projectTasksList =bHelper.GetProjectTaskList(projectId);
    List<string> empIds = dbHelper.GetTaskEmployeesId(projectId);           
    return View(projectTasksList.ToPagedList(page ?? 1, 10));
}

2 个答案:

答案 0 :(得分:2)

创建一个视图模型来保存它们:

public class FooViewModel
{
    public FooViewModel()
    {
       Tasks = new List<Task>();
       EmpIds = new List<string>();
    }

    public List<Task> Tasks { get; set; }
    public List<string> EmpIds { get; set; }
}

从控制器填充它们并返回模型:

public ActionResult DisplayProjectTask(string projectId, int? page)
{    
    var model = new FooViewModel();
    model.Tasks = dbHelper.GetProjectTaskList(projectId).ToPagedList(page ?? 1, 10);
    model.EmpIds = dbHelper.GetTaskEmployeesId(projectId);           
    return View(model);
}

然后将其添加到您的视图中:

@model FooViewModel

@foreach(var task in Model.Tasks)
{
   @* Replace with your properties in the Task object *@
   @task.ProperyName
}

@foreach(var empId in Model.EmpIds)
{
   @empId
}

答案 1 :(得分:1)

您可以创建一个模型,例如:

public class MyTwoListsModel
{
    public List<Cars> ListName1;
    public List<Animals> ListName2;

    public MyTwoLists(List<Cars> list1, List<Animals> list2)
    {   
        this.ListName1 = list1;
        this.ListName2 = list2;
    }
}

然后在它的ViewController实例中创建并将其传递给View。如果您有疑问 - 请