我在我的MVC 3示例应用程序中有2个模型,SimpleModel
和ComplexModel
,如下所示:
public class SimpleModel
{
public string Status { get; set; }
}
public class ComplexModel
{
public ComplexModel()
{
Simple = new SimpleModel();
}
public SimpleModel Simple{ get; set; }
}
我为这个模型定义了视图:
_SimplePartial.cshtml
:
@model SimpleModel
@Html.LabelFor(model => model.Status)
@Html.EditorFor(model => model.Status)
以及 Complex.cshtml
:
@model ComplexModel
@using (Html.BeginForm()) {
@Html.Partial("_SimplePartial", Model.Simple)
<input type="submit" value="Save" />
}
提交表单后,即使在Status
字段中输入了随机值,该值也未绑定到我的模型上。当我在控制器操作中检查模型时,Status
字段为NULL
:
[HttpPost]
public ActionResult Complex(ComplexModel model)
{
// model.Simple.Status is NULL, why ?
}
为什么它没有绑定?我不想继承模型。对于这种简单的情况,我必须编写自定义模型绑定器吗?谢谢。