如何将List从视图传递到控制器ASP.NET MVC5

时间:2015-07-16 00:33:19

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

我有这些模特:

public class Condominium
{
    public int CondominiumID { get; set; }

    public int BatchID { get; set; }

    public string Name { get; set; }

    public bool LiveInCondominium { get; set; }

    public string Phone { get; set; }

    public string Email { get; set; }

    public Batch Batch { get; set; }

    public List<Employee> Employees { get; set; }
}

public class Employee
{
    public int EmployeeID { get; set; }

    public int CityID { get; set; }

    public string UserID { get; set; }

    public Condominium CondominiumID { get; set; }

    public string Name { get; set; }

    public string Address { get; set; }

    public string ZipCode { get; set; }

    public string Contact { get; set; }

    public string Phone { get; set; }

    public string Email { get; set; }

    public City City { get; set; }

    public Condominium Condominium { get; set; }
}

我需要动态创建Employee个对象并将它们放入列表中,当我发布帖子请求时,对象Condominium包含一个包含Employee个对象的列表。我不知道如何才能看到这个。

2 个答案:

答案 0 :(得分:2)

我建议您为每个视图构建View模型,在这种情况下,您将构建一个包含保存员工列表的属性的模型。然后,您可以简单地填充模型并将其返回到视图中。

这是一些伪代码:

<强>控制器

public ActionResult Index() 
{
    var viewModel = new ViewModel()
    {
        Employees = BuildListOfEmployees() // Method that gets/builds a list of employees, expected return type List<Employee>
    };

    return View(viewModel);
}

class ViewModel
{
    public List<Employee> Employees { get; set; }
}

查看

@model YourNamespace.ViewModel

<ul>
@foreach (var employee in Model)
{
    <li>employee.Name</li>
}
</ul>

答案 1 :(得分:-1)

通常,此信息存储在数据库中,您只需将ID作为URL参数传递。 HTTP请求处理程序将获取参数并从数据库中查找所需的信息。

您的对象结构看起来很平坦,因此它们可以轻松转换为关系数据库中的表。