【发布时间】:2011-08-28 23:29:25
【问题描述】:
我有一个页面,您可以在其中添加公司。一家公司有多名员工。这是我的视图模型:
public class CompanyViewModel
{
[ScaffoldColumn(false)]
public int CompanyId { get; set; }
public string Name{ get; set; }
public List<EmployeeViewModel> Employees { get; set; }
}
public class EmployeeViewModel
{
[ScaffoldColumn(false)]
public int EmployeeId { get; set; }
public int CompanyId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
在我的页面上,我具有动态添加/删除员工的 jQuery 功能。当我发布表单时,我的视图如下所示:
<input id="CompanyId" name="CompanyId" type="hidden" value="0" />
<input id="Name" name="Name" type="text" value="Test company name" />
<input id="Employees[1].FirstName" name="Employees[1].FirstName" type="text" value="fn1" />
<input id="Employees[1].LastName" name="Employees[1].LastName" type="text" value="ln1" />
<input id="Employees[2].FirstName" name="Employees[2].FirstName" type="text" value="fn2" />
<input id="Employees[2].LastName" name="Employees[2].LastName" type="text" value="ln2" />
<input id="Employees[3].FirstName" name="Employees[3].FirstName" type="text" value="fn3" />
<input id="Employees[3].LastName" name="Employees[3].LastName" type="text" value="ln3" />
还有我的控制器方法:
[HttpPost]
public ActionResult Create(CompanyViewModel viewModel)
{
...
}
当我在发布表单后通过调试器查看视图模型中的内容时,Employees 集合为空。传递 CompanyId 和 Name,但不传递 Employees 集合。
我也尝试将输入的 ID 和名称从 Employees[1].FirstName 更改为 Model.Employees[1].FirstName,但这也没有帮助。
我在这里做错了什么?
我正在使用 MVC 3 和 Razor。
【问题讨论】:
-
这可能对你有帮助:ViewModel's list is null in action
标签: c# asp.net asp.net-mvc asp.net-mvc-3