如何将列表从视图传递到控制器.净MVC5

本文关键字:控制器 MVC5 视图 列表 | 更新日期: 2023-09-27 18:03:08

我有这些模型:

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对象并将它们放入列表中,当我发出post请求时,对象Condominium包含Employee对象的列表。我不知道如何创建这个视图

如何将列表从视图传递到控制器.净MVC5

我建议您为每个视图构建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; }
}
<<p> 视图/strong>
@model YourNamespace.ViewModel
<ul>
@foreach (var employee in Model)
{
    <li>employee.Name</li>
}
</ul>

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

你的对象结构看起来很平坦,所以它们很容易转换成关系数据库中的表。