C# 强类型列表是否从视图返回到填充模型?

C# 强类型列表是否从视图返回到填充模型?,c#,asp.net-mvc-4,razor,C#,Asp.net Mvc 4,Razor,我试图传递数据,但在使用强类型数据时遇到了问题 总体目标是: 索引:所有员工的复选框列表。在一个表中分组,由工作地址(通过foreach(字符串地址)+foreach(雇员e其中e.where(地址))分隔,这是一种神奇的方法 报告的详细信息。这部分应该显示所选用户的列表,询问一些小时和标题。足够简单 完成并显示。此部分应将数据插入数据库并呈现pdf 下面是我希望包含员工数据的类。为了缩短时间,我删除了其中的方法: public class IndexModel { public L

我试图传递数据,但在使用强类型数据时遇到了问题

总体目标是:

  • 索引:所有员工的复选框列表。在一个表中分组,由工作地址(通过foreach(字符串地址)+foreach(雇员e其中e.where(地址))分隔,这是一种神奇的方法

  • 报告的详细信息。这部分应该显示所选用户的列表,询问一些小时和标题。足够简单

  • 完成并显示。此部分应将数据插入数据库并呈现pdf

下面是我希望包含员工数据的类。为了缩短时间,我删除了其中的方法:

public class IndexModel
{
    public List<EmployeeForList> Employees { get; set; }

    public class EmployeeForList
    {
        public bool IsChecked { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int EmployeeId { get; set; }
        public string Building { get; set; }

        public EmployeeForList()
        {
        }

        public EmployeeForList(TXEP.InfoWeb employee)
        {

            this.FirstName = employee.FirstName;
            this.IsChecked = false;
            this.LastName = employee.LastName;
            this.Building = employee.BuildingAddress;
            this.EmployeeId = employee.EmployeeId;
        }
    }
}
我怀疑我没有掌握的是,如何在视图中创建一个雇员,使其填充一个强类型列表。还是我完全误解了这些概念


它似乎完全是一个列表,因为我可以很容易地传递简单的数据——但是当我得到它时,这个列表是空的,但是我的Google fu让我失望了,所以我恳求你,我的兄弟们,帮助我。

我相信在模型绑定期间,实体的属性名称需要加上前缀索引如下:

@Html.CheckBoxFor(model => model.Employees[0].IsChecked)
@Html.HiddenFor(model => model.Employees[0].LastName)
@Html.HiddenFor(model => model.Employees[0].FirstName)
@Html.HiddenFor(model => model.Employees[0].EmployeeId)
@Html.HiddenFor(model => model.Employees[0].Building)
这就是MVC如何创建一个新的
EmployeeForList
实体并将其添加到
Employees
列表中


注意:
模型
这里是
索引模型
我认为在模型绑定期间,实体的属性名称需要以如下索引作为前缀:

@Html.CheckBoxFor(model => model.Employees[0].IsChecked)
@Html.HiddenFor(model => model.Employees[0].LastName)
@Html.HiddenFor(model => model.Employees[0].FirstName)
@Html.HiddenFor(model => model.Employees[0].EmployeeId)
@Html.HiddenFor(model => model.Employees[0].Building)
这就是MVC如何创建一个新的
EmployeeForList
实体并将其添加到
Employees
列表中


注意:
model
这里是
IndexModel

MVC不会以您期望的方式发布列表。您需要格式化视图,以便ModelBinder能够判断您的数据是列表的一部分。请参阅MVC不会以您期望的方式发布列表。您需要格式化视图,以便elBinder将能够判断您的数据是列表的一部分。请参阅
@Html.CheckBoxFor(model => model.Employees[0].IsChecked)
@Html.HiddenFor(model => model.Employees[0].LastName)
@Html.HiddenFor(model => model.Employees[0].FirstName)
@Html.HiddenFor(model => model.Employees[0].EmployeeId)
@Html.HiddenFor(model => model.Employees[0].Building)