我有一个关于将复杂对象从表单传递给动作的问题。我会尝试更好地解释一下:
我有以下对象:
public class Owner
{
public string name { get; set; }
public string surname { get; set; }
}
我有一个容器,用于分组信息。通过这种方式,我可以毫无问题地将所有事情传递给同一视图:
public class Container
{
public string dog { get; set; }
public Owner owner { get; set; }
}
所以,我还有以下表格:
@using (Html.BeginForm("action", "controller"))
{
@Html.ValidationSummary(true)
@Html.EditorFor(model => model.dog)
@Html.EditorFor(model => model.owner.name)
@Html.EditorFor(model => model.owner.surname)
<p>
<input type="submit" value="Save" />
</p>
}
将容器返回到我的控制器操作时:
[HttpPost]
public ActionResult action(Container c)
{
..........
我获取所有者名称和姓氏的空值,但传递了狗字符串。 我真的不明白.. 为什么会这样? 我是mvc 4的新手,所以谢谢你的答案。