我的Get ActionMethod:
public ActionResult GetData(int id)
{
TestModel testModel = new DataAccess().GetData(id);
return View(testModel);
}
View
@model TestModel
@using (Html.BeginForm("UpdateRequest", "Home", FormMethod.Post))
{
<div>
@Html.Partial("_Information", Model.Information)
</div>
<input type="submit" id="btnSubmit" value="Save" />
}
数据在_Information部分视图中正确显示。但是,当我单击“保存”按钮时,传递给Controller的模型为空。
家庭控制器方法如下:
[HttpPost]
public ActionResult UpdateRequest(TestModel testModel)
{
new DataAccess().UpdateData(testModel);
.....
}
但是为UpdateRequest收到的模型为null请帮助解决此问题。
Note:部分视图不包含任何其他BeginForm标记。如果在主视图中添加了部分视图的各个控件,则会填充模型对象。
您是否检查过控制器回发时表单集合中包含的内容?我可能会猜测HtmlFieldPrefix已设置,这会导致您的表单控件具有一个与POCO不匹配的奇怪名称。
您可以通过使用以下命令使局部视图中的HtmlFieldPrefix与要设置的子对象相匹配:
@ViewData.TemplateInfo.HtmlFieldPrefix = "Your sub object property name here"
HTH