可能重复:
View Model IEnumerable<> property is coming back null (not binding) from post method?
我遇到的问题几乎与此处指定的问题相同:
View Model IEnumerable<> property is coming back null (not binding) from post method?
我的问题与上面链接的问题不同,因为在我的示例中,我在程序上创建用于填充视图模型的数据。
但是,所提出的解决方案都没有为我解决问题。就我所知,我在下面展示的方法与Travis J的答案完全相同,但我也尝试过为我的模型和/或“子模型”创建EditorTemplate的方法。我是MVC的新手,所以我很可能会做出惊人的事情,显然是错的。
这是一个简化的示例,显示了我的问题:
型号:
public class Foo
{
public string Bar { get; set; }
public Foo(string bar)
{
Bar = bar;
}
public Foo(){}
}
public class Foos
{
public List<Foo> ListOfFoos {get;set;}
}
控制器:
public ActionResult Index()
{
Foos foos = new Foos
{
ListOfFoos = new List<Foo>()
};
// here I'm procedurally constructing some data to keep my example simple.
for (int i = 0; i < 10; ++i)
{
foos.ListOfFoos.Add(new Foo(i.ToString()));
}
return View( foos );
}
[HttpPost]
public ActionResult Index(Foos foos)
{
??? foos.ListOfFoos is null here ???
return View();
}
查看:
@model OCC_Tracker.Models.Foos
@using (Html.BeginForm())
{
<table>
<tbody>
@for (int i = 0; i < Model.ListOfFoos.Count; ++i)
{
<tr>
<td>
@Html.TextBoxFor(m => m.ListOfFoos[i].Bar)
</td>
</tr>
}
</tbody>
</table>
<button>Submit</button>
}