Asp.net mvc ASP.NET Mvc 3模型绑定到集合无效
我正在尝试为项目集合创建编辑表单。该列表为null,当我检查ModelState时,它的有效属性为“true”,并且有0个键。人员实体上没有必需的属性 看法Asp.net mvc ASP.NET Mvc 3模型绑定到集合无效,asp.net-mvc,asp.net-mvc-3,model-binding,Asp.net Mvc,Asp.net Mvc 3,Model Binding,我正在尝试为项目集合创建编辑表单。该列表为null,当我检查ModelState时,它的有效属性为“true”,并且有0个键。人员实体上没有必需的属性 看法 @使用(Html.BeginForm(“UpdatePeople”,“People”,FormMethod.Post})) { @对于(var i=0;it.People[i].FirstName) } } 控制器 [HttpPost] public ActionResult UpdatePeople(List<People&
@使用(Html.BeginForm(“UpdatePeople”,“People”,FormMethod.Post}))
{
@对于(var i=0;it.People[i].FirstName)
}
}
控制器
[HttpPost]
public ActionResult UpdatePeople(List<People> items)
{
// items is null
}
[HttpPost]
公共操作结果更新人员(列表项)
{
//项目为空
}
您的操作方法接收的不是类型为List
的模型,而是您的ViewModel
我看不到您的模型定义,所以请提供一个小示例
看起来您有一个模型,它有一个名为People
的属性,类型为List
它会起作用的
如果ViewModel只有一个属性People
,则不需要此模型。
您可以将列表
传递给视图
希望这会有所帮助操作方法将绑定到传递给它的任何内容,以便与请求中发送的内容相匹配。它不必是传递给视图的视图模型。它可以是随机属性,也可以是属性与参数名对齐的任何模型类。是的,我知道ModelBinder是如何工作的。但这就是问题所在。你说得对,也许我应该说得更清楚些。
[HttpPost]
public ActionResult UpdatePeople(List<People> items)
{
// items is null
}
public class MyViewModel
{
public List<People> People { get; set; }
// other properties
}
List<People>
[HttpPost]
public ActionResult UpdatePeople(MyViewModel model)
{
// model.People exists
}