这看起来很简单,但我遗漏了一些东西:
型号:
public class MainModel
{
public SubModel oSubmodel = new Submodel();
....
}
查看:
@model myApp.Models.MainModel
@using (Html.BeginForm("Index","Account", FormMethod.Post, new { id = "form"})
{
@Html.LabelFor(m => m.oSubmodel.prop1
@Html.TextBoxFor(m => m.oSubmodel.prop1
}
控制器:
[HttpPost]
public ActionResult Index(MainModel oModel)
{
....
string prop = oModel.prop <-----------ok
string prop1 = oModel.oSubmodel.prop1 <----------null
}
m.oSubmodel.prop1数据在视图中正确显示。当数据回发到控制器时,MainModel值正确传递,但是 - 所有子模型值都为空。
有人提供任何见解吗?
答案 0 :(得分:3)
没错。我的错。 subModel需要作为属性从主模型公开,以便绑定在post:
上正常工作所以
public class MainModel
{
public SubModel oSubmodel = new Submodel();
....
}
变为:
public class MainModel
{
public SubModel oSubmodel { get; set; }
....
}
绑定然后效果很好。感谢那些回复的人。